Compare commits
99 Commits
improvemen
...
0fa13bc0d9
Author | SHA1 | Date | |
---|---|---|---|
0fa13bc0d9 | |||
c148987224 | |||
4550e15838 | |||
cc867a0bb8 | |||
16a0ef9543 | |||
51b150c9aa | |||
c18da5afae | |||
cd1c2ce969 | |||
d7795a8961 | |||
b948491fb3 | |||
03cfdeb50f | |||
e4cd8a4d74 | |||
75b6663ce0 | |||
df0c5d8f48 | |||
fcb9f49785 | |||
d6c44c6570 | |||
b8a1487bab | |||
00c2cfbcfc | |||
c398a2bbf4 | |||
58cf25fe43 | |||
8da45bab3e | |||
5abc319817 | |||
ff625706c0 | |||
81dafb3025 | |||
58e2d0b844 | |||
7720e38868 | |||
02b2395ef1 | |||
293e1d195a | |||
5cf6c3baf9 | |||
8376fed87d | |||
22d572f789 | |||
af41fe4aa7 | |||
b1a1691b84 | |||
92f9d76f14 | |||
32466e31f4 | |||
63cd6f0ac8 | |||
4fcc17675c | |||
4e903ce12b | |||
bfdb42c91f | |||
55d641b0da | |||
0e7cff0715 | |||
4d30fd7a2b | |||
292bd1d739 | |||
1a756358f5 | |||
009c0d0519 | |||
bab6267412 | |||
72196f42de | |||
f1e958af41 | |||
|
78de535233 | ||
e353771faa | |||
714cc0a65c | |||
9357a21169 | |||
75e732a437 | |||
afd07534ab | |||
20aba254bc | |||
fbd99c82a4 | |||
784b02b4a4 | |||
|
7a2e48bed2 | ||
31ca1c76bb | |||
99ddd88ff8 | |||
4f1a8ef9a1 | |||
93f12c7673 | |||
|
3eb02af5fd | ||
|
83d8146ad1 | ||
|
1974f45c50 | ||
36ce6f0b74 | |||
4701a15222 | |||
61277f8822 | |||
abb7442055 | |||
81b15607dc | |||
30d8d45326 | |||
9a23c001e1 | |||
64b7372624 | |||
d04420295a | |||
2935b29fd8 | |||
505f741fbd | |||
5a852ebdfb | |||
026d2aba40 | |||
|
9b08b20cc3 | ||
38fdd13e0c | |||
d9679f5f81 | |||
92ea2a97eb | |||
98cccc438c | |||
79d9f42085 | |||
b39150ecea | |||
1a40899780 | |||
25b79ca6d1 | |||
2e3548d92a | |||
ed8e4ecf33 | |||
6a9608c7a4 | |||
d8c6274d19 | |||
1df7b2fd4c | |||
9001dbc1b4 | |||
c11c7922bd | |||
739facfeca | |||
8c9a971e2c | |||
5aa17d5823 | |||
4d6ef342e1 | |||
8e5b315fd4 |
213
.gitea/workflows/build.yaml
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
# SPDX-FileCopyrightText: 2025 KolibriOS team
|
||||||
|
|
||||||
|
name: 'Build system'
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'main'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
codestyle:
|
||||||
|
name: "Check kernel codestyle"
|
||||||
|
runs-on: kolibri-toolchain
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Check codestyle
|
||||||
|
run: |
|
||||||
|
find kernel/trunk -iname '*.asm' -or -iname '*.inc' -exec bash -c "echo {}; cat {} | perl .gitea/workflows/checker.pl" \;
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: 'Build'
|
||||||
|
runs-on: kolibri-toolchain
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Get describe
|
||||||
|
id: vars
|
||||||
|
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Get toolchain hash
|
||||||
|
id: toolchain-hash
|
||||||
|
run: |
|
||||||
|
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc)
|
||||||
|
c=$(find ${{ gitea.workspace }}/programs/develop/objconv/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
d=$(find ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
f=$(find ${{ gitea.workspace }}/programs/develop/clink/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||||
|
echo hash=$(echo $a $b $c $d $e $f | sha1sum | awk '{print $1}') >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Restore toolchain
|
||||||
|
id: cache-toolchain
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: /home/autobuild
|
||||||
|
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||||
|
|
||||||
|
- name: Build and install C--
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/cmm/
|
||||||
|
make -f Makefile.lin32
|
||||||
|
chmod +x c--
|
||||||
|
mv c-- /home/autobuild/tools/win32/bin/c--
|
||||||
|
cp ${{ gitea.workspace }}/programs/cmm/c--/c--.ini /home/autobuild/tools/win32/bin/c--.ini
|
||||||
|
make -f Makefile.lin32 clean
|
||||||
|
|
||||||
|
- name: Install TCC
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||||
|
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||||
|
|
||||||
|
- name: Build and install objconv
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/objconv/
|
||||||
|
g++ -o /home/autobuild/tools/win32/bin/objconv -O2 *.cpp
|
||||||
|
chmod +x /home/autobuild/tools/win32/bin/objconv
|
||||||
|
|
||||||
|
- name: Build and install kerpack and kpack
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
cd ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/
|
||||||
|
make
|
||||||
|
chmod +x kerpack
|
||||||
|
chmod +x kpack
|
||||||
|
mv kerpack /home/autobuild/tools/win32/bin/.
|
||||||
|
mv kpack /home/autobuild/tools/win32/bin/.
|
||||||
|
|
||||||
|
- name: Build and install clink
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}/programs/develop/clink
|
||||||
|
gcc main.c -o clink
|
||||||
|
chmod a+x clink
|
||||||
|
mv clink /home/autobuild/tools/win32/bin/clink
|
||||||
|
|
||||||
|
- name: Prepare cache folder
|
||||||
|
run: |
|
||||||
|
rm /home/autobuild
|
||||||
|
mv /root/autobuild /home/autobuild
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
|
- name: Save toolchain
|
||||||
|
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
with:
|
||||||
|
path: /home/autobuild
|
||||||
|
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||||
|
|
||||||
|
- name: Configure tup
|
||||||
|
run: |
|
||||||
|
cd ${{ gitea.workspace }}
|
||||||
|
|
||||||
|
export ROOT=${{ gitea.workspace }}
|
||||||
|
echo "CONFIG_KPACK_CMD= && kpack --nologo %o" | tee en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_KERPACK_CMD= && kerpack %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_PESTRIP_CMD= && EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_NO_MSVC=full" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
echo "CONFIG_INSERT_REVISION_ID=1" | tee -a en_US.config ru_RU.config es_ES.config
|
||||||
|
|
||||||
|
tup -v
|
||||||
|
tup init
|
||||||
|
|
||||||
|
# Configure en_US
|
||||||
|
echo "CONFIG_LANG=en_US" >> en_US.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=en_US" >> en_US.config
|
||||||
|
tup variant en_US.config
|
||||||
|
|
||||||
|
# Configure ru_RU
|
||||||
|
echo "CONFIG_LANG=ru_RU" >> ru_RU.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config
|
||||||
|
tup variant ru_RU.config
|
||||||
|
|
||||||
|
# Configure es_ES
|
||||||
|
echo "CONFIG_LANG=es_ES" >> es_ES.config
|
||||||
|
echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config
|
||||||
|
tup variant es_ES.config
|
||||||
|
|
||||||
|
# -------------------------- Build en_US ------------------------- #
|
||||||
|
- name: (en_US) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||||
|
tup build-en_US
|
||||||
|
|
||||||
|
- name: (en_US) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-en_US/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (en_US) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-en_US/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (en_US) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-en_US/data/kolibri.raw
|
||||||
|
|
||||||
|
# -------------------------- Build ru_RU ------------------------- #
|
||||||
|
- name: (ru_RU) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||||
|
tup build-ru_RU
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-ru_RU/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-ru_RU/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (ru_RU) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-ru_RU/data/kolibri.raw
|
||||||
|
|
||||||
|
# -------------------------- Build es_ES ------------------------- #
|
||||||
|
- name: (es_ES) Build KolibriOS
|
||||||
|
run: |
|
||||||
|
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||||
|
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||||
|
tup build-es_ES
|
||||||
|
|
||||||
|
- name: (es_ES) Upload floppy image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.img
|
||||||
|
path: build-es_ES/data/kolibri.img
|
||||||
|
|
||||||
|
- name: (es_ES) Upload CD image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.iso
|
||||||
|
path: build-es_ES/data/kolibri.iso
|
||||||
|
|
||||||
|
- name: (es_ES) Upload raw image
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.raw
|
||||||
|
path: build-es_ES/data/kolibri.raw
|
54
.gitea/workflows/checker.pl
Normal file
82
.gitea/workflows/install_kgcc
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
# SPDX-FileCopyrightText: 2025 KolibriOS Team
|
||||||
|
|
||||||
|
# Written by mxlgv (Maxim Logaev)
|
||||||
|
# Installation steps described by maxcodehack (Maxim Kuzmitsky)
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
print_msg(){
|
||||||
|
echo -e "\e[34m$1\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_ok(){
|
||||||
|
echo -e "\e[32m$1\e[0m"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_err(){
|
||||||
|
echo -e "\e[31m$1\e[0m"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
check_utils(){
|
||||||
|
printf "%s: " $1
|
||||||
|
if command -v $1 &> /dev/null
|
||||||
|
then
|
||||||
|
print_ok "ok\r"
|
||||||
|
else
|
||||||
|
print_err "no\r"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_msg "Checking utilities..."
|
||||||
|
|
||||||
|
check_utils wget
|
||||||
|
check_utils 7z
|
||||||
|
|
||||||
|
print_msg "Create the /home/autobuild folder..."
|
||||||
|
sudo rm -rf ~/autobuild /home/autobuild
|
||||||
|
mkdir -p ~/autobuild/tools
|
||||||
|
sudo ln -sf ~/autobuild /home/autobuild
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Download the kos32-gcc toolchain..."
|
||||||
|
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -O ~/autobuild/tools/kos32-toolchain.7z
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Extracting files ..."
|
||||||
|
cd ~/autobuild/tools/
|
||||||
|
7z x -y kos32-toolchain.7z
|
||||||
|
rm -rf kos32-toolchain.7z
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Downloading libisl..."
|
||||||
|
cd /tmp
|
||||||
|
sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -O /tmp/libisl.so.10.2.2.7z
|
||||||
|
sudo 7z x -y libisl.so.10.2.2.7z
|
||||||
|
|
||||||
|
if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
|
||||||
|
sudo mkdir -p /usr/lib/x86_64-linux-gnu/
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_msg "Fixing libisl..."
|
||||||
|
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10
|
||||||
|
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||||
|
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
print_msg "Fixing libmpfr..."
|
||||||
|
sudo ln -sf /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
|
||||||
|
sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4
|
||||||
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then
|
||||||
|
export PATH=$PATH:/home/autobuild/tools/win32/bin
|
||||||
|
print_msg "Adding '/home/autobuild/tools/win32/bin' to '~/.bashrc'"
|
||||||
|
echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc
|
||||||
|
fi
|
||||||
|
print_ok "Installation was successful!"
|
@@ -2,117 +2,70 @@
|
|||||||
|
|
||||||
## Type of contributing
|
## Type of contributing
|
||||||
|
|
||||||
There are two main types of contributions accepted in KolibriOS:
|
There are two main types of contributions accepted to the main KolibriOS repository:
|
||||||
|
|
||||||
- Submitting issues about problems in the project
|
- Submitting issues about problems in the project
|
||||||
- Submitting code to the project via pull requests
|
- Submitting code to the project via pull requests
|
||||||
|
|
||||||
Each of these types is described in detail below.
|
Both these types are described in detail below.
|
||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
|
|
||||||
You can help us by submitting issues about problems found in the system.
|
You can help us by submitting issues about problems found in the system. Currently, there are two main ways of submitting an issue in the project: **Bug Reports** and **Feature Requests**:
|
||||||
Currently, there are two main ways of submitting an issue in the project:
|
|
||||||
**Bug Reports** and **Feature Requests**:
|
|
||||||
|
|
||||||
- Bug Reports are suitable if you find a **bug** (crash, error, unexpected
|
- Bug Reports are suitable if you find a **bug** (crash, error, unexpected behavior) in some part of the system (kernel, drivers, apps, etc.) and want to report it
|
||||||
behavior) in some part of the system (kernel, drivers, apps, etc.) and want to
|
- Feature Requests are used, when you want to propose some **improvement** to the system (missing features, improved user experience, etc.)
|
||||||
report it
|
|
||||||
- Feature Request are used, when you want to propose some **improvement** to
|
|
||||||
the system (missing features, improved user experience, etc.)
|
|
||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
|
|
||||||
You can also help us by submitting code via pull requests. The process of
|
You can also help us by submitting code via pull requests. The process of submitting a pull request consists of the following steps:
|
||||||
submitting a pull request consists of the following steps:
|
|
||||||
|
|
||||||
1. Find what you want to implement or improve
|
1. Find what you want to implement or improve
|
||||||
2. Make a fork of kolibrios (or other needed) repository
|
2. Make a fork of kolibrios (or other needed) repository
|
||||||
3. Create a branch with a name that matches [the style](#branch-style)
|
3. Create a branch with a name that matches your changes
|
||||||
4. Implement and test the changes
|
4. Implement and test the changes
|
||||||
5. Create commits according to the [accepted style](#commit-style)
|
5. Create commits according to the [accepted style](#commit-style)
|
||||||
6. Create and submit a pull request into `main` branch
|
6. Create and submit a pull request into `main` branch
|
||||||
7. Wait for CI/CD pipelines and code review to pass
|
7. Wait for CI/CD pipelines and code review to pass
|
||||||
|
|
||||||
When a pull request is submitted, at least two project participants must conduct
|
When a pull request is submitted, at least two project participants must conduct a code review, after which the proposed changes need to be corrected (if requested) and merged into the project.
|
||||||
a code review, after which the proposed changes can be corrected (if it's
|
|
||||||
necessary) and merged into the project.
|
|
||||||
|
|
||||||
## Branch style
|
|
||||||
|
|
||||||
1. Your branch name should be as short as possible, but describes your changes
|
|
||||||
2. Words should be divided by minus sign (`-`)
|
|
||||||
3. Optionally, might starts with general [type](#types) of your future PR
|
|
||||||
with slash (`/`): `refactor/nasm-to-fasm`, `update/demos`, `fix/cp866-charset`
|
|
||||||
|
|
||||||
## Commit style
|
## Commit style
|
||||||
|
|
||||||
### Pattern
|
### Message pattern
|
||||||
|
|
||||||
The commit message should look like this:
|
The commit message should look like this:
|
||||||
|
|
||||||
```
|
```test
|
||||||
type(scope): commit message header
|
Commit message header
|
||||||
|
|
||||||
Commit message body, if needed
|
Commit message body, if needed
|
||||||
```
|
```
|
||||||
- Use the present tense ("Add feature" not "Added feature")
|
|
||||||
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
|
||||||
- Limit the first line to 72 characters or less
|
|
||||||
- Reference issues and pull requests liberally after the first line
|
|
||||||
- When only changing documentation, include [ci skip] in the commit title
|
|
||||||
- Commit message header and body should reflect changes made in commit
|
- Commit message header and body should reflect changes made in commit
|
||||||
|
- Commit message body should be separated from the header by one empty line
|
||||||
|
|
||||||
### Types
|
### Length
|
||||||
|
|
||||||
| Type | Description |
|
Maximum number of characters in a commit header is **72** (standard for **Git**). Also, **72** is the maximum length of a line in a commit body.
|
||||||
| :--------------: | :------------------------------------------------ |
|
|
||||||
| `feat / feature` | for new feature implementing commit |
|
|
||||||
| `update` | for update commit |
|
|
||||||
| `bug` | for bug fix commit |
|
|
||||||
| `security` | for security issue fix commit |
|
|
||||||
| `performance` | for performance issue fix commit |
|
|
||||||
| `improvement` | for backwards-compatible enhancement commit |
|
|
||||||
| `breaking` | for backwards-incompatible enhancement commit |
|
|
||||||
| `deprecated` | for deprecated feature commit |
|
|
||||||
| `i18n` | for i18n (internationalization) commit |
|
|
||||||
| `a11y` | for a11y (accessibility) commit |
|
|
||||||
| `refactor` | for refactoring commit |
|
|
||||||
| `docs` | for documentation commit |
|
|
||||||
| `example` | for example code commit |
|
|
||||||
| `test` | for testing commit |
|
|
||||||
| `deps` | for dependencies upgrading or downgrading commit |
|
|
||||||
| `config` | for configuration commit |
|
|
||||||
| `build` | for packaging or bundling commit |
|
|
||||||
| `release` | for publishing commit |
|
|
||||||
| `wip` | for work in progress commit |
|
|
||||||
| `chore` | for other operations commit |
|
|
||||||
|
|
||||||
### Scopes
|
### Multiple authors
|
||||||
|
|
||||||
> [!NOTE]
|
If you are making a commit together with another developer, you need to add:
|
||||||
> Scopes are optional
|
|
||||||
|
|
||||||
| Scope | Description |
|
```
|
||||||
| :----: | :------------------------------- |
|
Co-authored-by: ANOTHER-NAME <ANOTHER-NAME@EXAMPLE.COM>
|
||||||
| `krn` | kernel |
|
```
|
||||||
| `drv` | drivers |
|
|
||||||
| `lib` | libraries |
|
|
||||||
| `app` | userspace applications |
|
|
||||||
| `skin` | skins |
|
|
||||||
| `data` | images, configs, resources, etc. |
|
|
||||||
|
|
||||||
> [!NOTE]
|
to the end commit message body on a new line.
|
||||||
> If changes are made to a specific component, the name of the component
|
|
||||||
> separated by `/` character needs to be specified. For example:
|
|
||||||
> `app/shell`, `lib/libimg`
|
|
||||||
|
|
||||||
## Merge commits
|
### Merge commits
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Merge commits are **prohibited** in the project
|
> Merge commits are **prohibited** in the project
|
||||||
|
|
||||||
|
Use **rebase** to keep your branch up to date.
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
We hope this small instructions will help you to get familiar with KolibriOS
|
We hope this small instructions will help you to get familiar with KolibriOS contribution rules and inspire you to participate in the life of our project.
|
||||||
contribution rules and inspire you to participate in the work of this project.
|
|
||||||
|
14
README.md
@@ -1,13 +1,13 @@
|
|||||||
# KolibriOS
|
# KolibriOS
|
||||||
|
|
||||||
[](./COPYING.TXT)
|
[](./COPYING.TXT)
|
||||||
[](https://git.kolibrios.org/KolibriOS/kolibrios/actions/workflows/build.yaml)
|
[](https://git.kolibrios.org/KolibriOS/kolibrios/actions)
|
||||||
|
|
||||||
KolibriOS is a hobby operating system for x86-compatible computers, which is currently being developed by a small teem of enthusiasts.
|
KolibriOS is a hobby operating system for x86-compatible computers, which is currently being developed by a small but passionate team of enthusiasts.
|
||||||
|
|
||||||
It's kernel is written entirely in [FASM](https://flatassembler.net/) assembly language, making it very compact and lean on system resources.
|
Its kernel, most drivers, and many programs are written entirely in [FASM](https://flatassembler.net/) assembly language, making them very compact and lean on system resources.
|
||||||
|
|
||||||
Based on [MenuetOS](https://www.menuetos.net/), it uses its own standards and is NOT fully POSIX or UNIX compliant
|
Based on [MenuetOS](https://www.menuetos.net/), it uses its own standards and is NOT fully POSIX or UNIX compliant.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
@@ -20,9 +20,3 @@ Common list of tasks, issues and enhancement proposals can be found on [this pag
|
|||||||
## Special thanks
|
## Special thanks
|
||||||
|
|
||||||
The KolibriOS team expresses special thanks to the author of the 32-bit **MenuetOS**, [Ville Turjanmaa](https://www.menuetos.net/contact.htm). We also want to note that all **MenuetOS** copyrights have been preserved.
|
The KolibriOS team expresses special thanks to the author of the 32-bit **MenuetOS**, [Ville Turjanmaa](https://www.menuetos.net/contact.htm). We also want to note that all **MenuetOS** copyrights have been preserved.
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Contents of this repository are licensed under the terms of **GNU GPL 2.0** unless otherwise specified.
|
|
||||||
|
|
||||||
See [this](./COPYING.TXT) file for details.
|
|
||||||
|
@@ -49,8 +49,6 @@ img_files = {
|
|||||||
{"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
|
{"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
|
||||||
{"MEDIA/PIXIESKN.PNG", SRC_PROGS .. "/cmm/pixie2/pixieskn.png"},
|
{"MEDIA/PIXIESKN.PNG", SRC_PROGS .. "/cmm/pixie2/pixieskn.png"},
|
||||||
{"NETWORK/FTPC.INI", SRC_PROGS .. "/network/ftpc/ftpc.ini"},
|
{"NETWORK/FTPC.INI", SRC_PROGS .. "/network/ftpc/ftpc.ini"},
|
||||||
{"NETWORK/FTPC_SYS.PNG", SRC_PROGS .. "/network/ftpc/ftpc_sys.png"},
|
|
||||||
{"NETWORK/FTPC_NOD.PNG", SRC_PROGS .. "/network/ftpc/ftpc_nod.png"},
|
|
||||||
{"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
|
{"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
|
||||||
{"NETWORK/KNMAP", "common/network/knmap"},
|
{"NETWORK/KNMAP", "common/network/knmap"},
|
||||||
{"NETWORK/USERS.INI", "common/network/users.ini"},
|
{"NETWORK/USERS.INI", "common/network/users.ini"},
|
||||||
@@ -85,6 +83,7 @@ if build_type == "ru_RU" then tup.append_table(img_files, {
|
|||||||
{"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/mykey.ini"},
|
{"SETTINGS/MYKEY.INI", SRC_PROGS .. "/system/MyKey/trunk/mykey.ini"},
|
||||||
{"SETTINGS/SYSPANEL.INI", "ru_RU/settings/syspanel.ini"},
|
{"SETTINGS/SYSPANEL.INI", "ru_RU/settings/syspanel.ini"},
|
||||||
}) elseif build_type == "en_US" then tup.append_table(img_files, {
|
}) elseif build_type == "en_US" then tup.append_table(img_files, {
|
||||||
|
{"WELCOME.HTM", VAR_DATA .. "/" .. build_type .. "/welcome.htm.kpack"},
|
||||||
{"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"},
|
{"EXAMPLE.ASM", SRC_PROGS .. "/develop/examples/example/trunk/example.asm"},
|
||||||
{"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
|
{"DEVELOP/BACKY", SRC_PROGS .. "/develop/backy/Backy"},
|
||||||
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
|
{"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
|
||||||
@@ -153,10 +152,7 @@ extra_files = {
|
|||||||
{"HD_Load/USB_boot_old/", SRC_PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
|
{"HD_Load/USB_boot_old/", SRC_PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
|
||||||
{"HD_Load/USB_boot_old/", SRC_PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
|
{"HD_Load/USB_boot_old/", SRC_PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
|
||||||
{"kolibrios/3D/info3ds/INFO3DS.INI", SRC_PROGS .. "/develop/info3ds/info3ds.ini"},
|
{"kolibrios/3D/info3ds/INFO3DS.INI", SRC_PROGS .. "/develop/info3ds/info3ds.ini"},
|
||||||
{"kolibrios/3D/info3ds/OBJECTS.PNG", SRC_PROGS .. "/develop/info3ds/objects.png"},
|
{"kolibrios/3D/blocks/blocks.kex", "../programs/bcc32/games/blocks/bin/blocks.kex"},
|
||||||
{"kolibrios/3D/info3ds/TOOLBAR.PNG", SRC_PROGS .. "/develop/info3ds/toolbar.png"},
|
|
||||||
{"kolibrios/3D/info3ds/FONT8X9.BMP", SRC_PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
|
|
||||||
{"kolibrios/3D/blocks/", "../programs/bcc32/games/blocks/bin/*"},
|
|
||||||
{"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"},
|
{"kolibrios/3D/blocks/models/", "../programs/bcc32/games/blocks/models/*"},
|
||||||
{"kolibrios/3D/md2view/", "common/3d/md2view/*"},
|
{"kolibrios/3D/md2view/", "common/3d/md2view/*"},
|
||||||
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
|
{"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
|
||||||
@@ -289,6 +285,7 @@ extra_files = {
|
|||||||
{"kolibrios/res/templates/NES/", "common/templates/NES/*"},
|
{"kolibrios/res/templates/NES/", "common/templates/NES/*"},
|
||||||
{"kolibrios/res/wallpapers/", "common/wallpapers/*"},
|
{"kolibrios/res/wallpapers/", "common/wallpapers/*"},
|
||||||
{"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"},
|
{"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"},
|
||||||
|
{"kolibrios/res/system/", "common/signs.png"},
|
||||||
{"kolibrios/utils/vmode", "common/vmode"},
|
{"kolibrios/utils/vmode", "common/vmode"},
|
||||||
{"kolibrios/utils/texture", "common/utils/texture"},
|
{"kolibrios/utils/texture", "common/utils/texture"},
|
||||||
{"kolibrios/utils/cnc_editor/cnc_editor", VAR_PROGS .. "/other/cnc_editor/cnc_editor"},
|
{"kolibrios/utils/cnc_editor/cnc_editor", VAR_PROGS .. "/other/cnc_editor/cnc_editor"},
|
||||||
@@ -407,8 +404,10 @@ tup.append_table(img_files, {
|
|||||||
{"@SS", VAR_PROGS .. "/system/scrsaver/scrsaver"},
|
{"@SS", VAR_PROGS .. "/system/scrsaver/scrsaver"},
|
||||||
{"@VOLUME", VAR_PROGS .. "/media/volume/volume"},
|
{"@VOLUME", VAR_PROGS .. "/media/volume/volume"},
|
||||||
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
|
{"HACONFIG", VAR_PROGS .. "/other/ha/HACONFIG"},
|
||||||
|
{"ACLOCK", VAR_PROGS .. "/demos/aclock/aclock"},
|
||||||
{"APM", VAR_PROGS .. "/system/apm/apm"},
|
{"APM", VAR_PROGS .. "/system/apm/apm"},
|
||||||
{"CALC", VAR_PROGS .. "/other/calc/trunk/calc"},
|
{"CALC", VAR_PROGS .. "/other/calc/trunk/calc"},
|
||||||
|
{"CALCPLUS", VAR_PROGS .. "/other/calcplus/calcplus"},
|
||||||
{"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
|
{"CALENDAR", VAR_PROGS .. "/system/calendar/trunk/calendar"},
|
||||||
{"COLRDIAL", VAR_PROGS .. "/system/colrdial/color_dialog"},
|
{"COLRDIAL", VAR_PROGS .. "/system/colrdial/color_dialog"},
|
||||||
{"CROPFLAT", VAR_PROGS .. "/system/cropflat/cropflat"},
|
{"CROPFLAT", VAR_PROGS .. "/system/cropflat/cropflat"},
|
||||||
@@ -426,7 +425,7 @@ tup.append_table(img_files, {
|
|||||||
{"KPACK", VAR_PROGS .. "/other/kpack/trunk/kpack"},
|
{"KPACK", VAR_PROGS .. "/other/kpack/trunk/kpack"},
|
||||||
{"LAUNCHER", VAR_PROGS .. "/system/launcher/trunk/launcher"},
|
{"LAUNCHER", VAR_PROGS .. "/system/launcher/trunk/launcher"},
|
||||||
{"LOADDRV", VAR_PROGS .. "/system/loaddrv/loaddrv"},
|
{"LOADDRV", VAR_PROGS .. "/system/loaddrv/loaddrv"},
|
||||||
{"MAGNIFY", VAR_PROGS .. "/demos/magnify/trunk/magnify"},
|
{"MAGNIFY", VAR_PROGS .. "/system/magnify/magnify"},
|
||||||
{"MGB", VAR_PROGS .. "/testing/mgb/trunk/mgb"},
|
{"MGB", VAR_PROGS .. "/testing/mgb/trunk/mgb"},
|
||||||
{"MOUSEMUL", VAR_PROGS .. "/system/mousemul/trunk/mousemul"},
|
{"MOUSEMUL", VAR_PROGS .. "/system/mousemul/trunk/mousemul"},
|
||||||
{"MADMOUSE", VAR_PROGS .. "/other/madmouse/madmouse"},
|
{"MADMOUSE", VAR_PROGS .. "/other/madmouse/madmouse"},
|
||||||
@@ -441,6 +440,8 @@ tup.append_table(img_files, {
|
|||||||
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
|
{"TERMINAL", VAR_PROGS .. "/system/terminal/terminal"},
|
||||||
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"},
|
{"TEST", VAR_PROGS .. "/testing/protection/trunk/test"},
|
||||||
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/trunk/tinypad"},
|
{"TINYPAD", VAR_PROGS .. "/develop/tinypad/trunk/tinypad"},
|
||||||
|
{"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
|
||||||
|
{"TIMER", VAR_PROGS .. "/other/Timer/Timer"},
|
||||||
{"UNZ", VAR_PROGS .. "/fs/unz/unz"},
|
{"UNZ", VAR_PROGS .. "/fs/unz/unz"},
|
||||||
{"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"},
|
{"ZKEY", VAR_PROGS .. "/system/zkey/trunk/ZKEY"},
|
||||||
{"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/trunk/3dwav"},
|
{"3D/3DWAV", VAR_PROGS .. "/demos/3dwav/trunk/3dwav"},
|
||||||
@@ -453,37 +454,39 @@ tup.append_table(img_files, {
|
|||||||
{"DEMOS/BCDCLK", VAR_PROGS .. "/demos/bcdclk/trunk/bcdclk"},
|
{"DEMOS/BCDCLK", VAR_PROGS .. "/demos/bcdclk/trunk/bcdclk"},
|
||||||
{"DEMOS/BUDHBROT", VAR_PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
|
{"DEMOS/BUDHBROT", VAR_PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
|
||||||
{"DEMOS/EYES", VAR_PROGS .. "/demos/eyes/trunk/eyes"},
|
{"DEMOS/EYES", VAR_PROGS .. "/demos/eyes/trunk/eyes"},
|
||||||
{"DEMOS/FIREWORK", VAR_PROGS .. "/demos/firework/trunk/firework"},
|
{"DEMOS/FIREWORK", VAR_PROGS .. "/demos/firework/firework"},
|
||||||
{"DEMOS/MOVBACK", VAR_PROGS .. "/demos/movback/trunk/movback"},
|
{"DEMOS/MOVBACK", VAR_PROGS .. "/demos/movback/movback"},
|
||||||
{"DEMOS/PLASMA", VAR_PROGS .. "/demos/plasma/trunk/plasma"},
|
{"DEMOS/PLASMA", VAR_PROGS .. "/demos/plasma/plasma"},
|
||||||
{"DEMOS/SPIRAL", VAR_PROGS .. "/demos/spiral/spiral"},
|
{"DEMOS/SPIRAL", VAR_PROGS .. "/demos/spiral/spiral"},
|
||||||
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
|
{"DEMOS/TINYFRAC", VAR_PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
|
||||||
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trunk/trantest"},
|
{"DEMOS/TRANTEST", VAR_PROGS .. "/demos/trantest/trunk/trantest"},
|
||||||
{"DEMOS/TUBE", VAR_PROGS .. "/demos/tube/trunk/tube"},
|
{"DEMOS/TUBE", VAR_PROGS .. "/demos/tube/tube"},
|
||||||
{"DEMOS/UNVWATER", VAR_PROGS .. "/demos/unvwater/trunk/unvwater"},
|
{"DEMOS/UNVWATER", VAR_PROGS .. "/demos/unvwater/unvwater"},
|
||||||
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/trunk/web"},
|
{"DEMOS/WEB", VAR_PROGS .. "/demos/web/trunk/web"},
|
||||||
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/trunk/zeroline"},
|
{"DEMOS/ZEROLINE", VAR_PROGS .. "/demos/zeroline/trunk/zeroline"},
|
||||||
{"DEVELOP/ASCIIVJU", VAR_PROGS .. "/develop/asciivju/trunk/asciivju"},
|
|
||||||
{"DEVELOP/BOARD", VAR_PROGS .. "/system/board/trunk/board"},
|
{"DEVELOP/BOARD", VAR_PROGS .. "/system/board/trunk/board"},
|
||||||
|
{"DEVELOP/DBGBOARD", VAR_PROGS .. "/system/dbgboard/dbgboard"},
|
||||||
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
|
{"DEVELOP/CEDIT", SRC_PROGS .. "/develop/cedit/CEDIT"},
|
||||||
|
{"DEVELOP/CHARSETS", VAR_PROGS .. "/develop/charsets/charsets"},
|
||||||
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/trunk/cObj"},
|
{"DEVELOP/COBJ", VAR_PROGS .. "/develop/cObj/trunk/cObj"},
|
||||||
{"DEVELOP/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
|
{"DEVELOP/ENTROPYV", VAR_PROGS .. "/develop/entropyview/entropyview"},
|
||||||
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
|
{"DEVELOP/FASM", VAR_PROGS .. "/develop/fasm/1.73/fasm"},
|
||||||
|
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
||||||
|
{"DEVELOP/PIPET", VAR_PROGS .. "/other/pipet/pipet"},
|
||||||
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"},
|
{"DEVELOP/H2D2B", VAR_PROGS .. "/develop/h2d2b/trunk/h2d2b"},
|
||||||
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"},
|
{"DEVELOP/HEED", VAR_PROGS .. "/develop/heed/trunk/heed"},
|
||||||
{"DEVELOP/KEYASCII", VAR_PROGS .. "/develop/keyascii/trunk/keyascii"},
|
|
||||||
{"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"},
|
{"DEVELOP/MTDBG", VAR_PROGS .. "/develop/mtdbg/mtdbg"},
|
||||||
|
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
|
||||||
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"},
|
{"DEVELOP/SCANCODE", VAR_PROGS .. "/develop/scancode/trunk/scancode"},
|
||||||
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"},
|
{"DEVELOP/EXAMPLES/CIRCLE", VAR_PROGS .. "/develop/examples/circle/trunk/circle"},
|
||||||
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
|
{"DEVELOP/EXAMPLES/COLORREF", VAR_PROGS .. "/demos/colorref/trunk/colorref"},
|
||||||
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
|
{"DEVELOP/EXAMPLES/CONGET", VAR_PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
|
||||||
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"},
|
{"DEVELOP/EXAMPLES/CSLIDE", VAR_PROGS .. "/demos/cslide/trunk/cslide"},
|
||||||
{"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"},
|
{"DEVELOP/EXAMPLES/THREAD", VAR_PROGS .. "/develop/examples/thread/trunk/thread"},
|
||||||
{"DEVELOP/EXAMPLES/USE_MB", VAR_PROGS .. "/demos/use_mb/use_mb"},
|
|
||||||
{"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
|
{"File Managers/KFAR", VAR_PROGS .. "/fs/kfar/trunk/kfar"},
|
||||||
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
|
{"File Managers/OPENDIAL", VAR_PROGS .. "/fs/opendial/opendial"},
|
||||||
|
{"LOD", VAR_PROGS .. "/fs/lod/lod"},
|
||||||
{"GAMES/15", VAR_PROGS .. "/games/15/15"},
|
{"GAMES/15", VAR_PROGS .. "/games/15/15"},
|
||||||
{"GAMES/DINO", VAR_PROGS .. "/games/dino/dino"},
|
|
||||||
{"GAMES/FREECELL", VAR_PROGS .. "/games/freecell/freecell"},
|
{"GAMES/FREECELL", VAR_PROGS .. "/games/freecell/freecell"},
|
||||||
{"GAMES/GOMOKU", VAR_PROGS .. "/games/gomoku/gomoku"},
|
{"GAMES/GOMOKU", VAR_PROGS .. "/games/gomoku/gomoku"},
|
||||||
{"GAMES/LIGHTS", VAR_PROGS .. "/games/sq_game/SQ_GAME"},
|
{"GAMES/LIGHTS", VAR_PROGS .. "/games/sq_game/SQ_GAME"},
|
||||||
@@ -498,6 +501,7 @@ tup.append_table(img_files, {
|
|||||||
{"GAMES/SW", VAR_PROGS .. "/games/sw/sw"},
|
{"GAMES/SW", VAR_PROGS .. "/games/sw/sw"},
|
||||||
{"GAMES/TANKS", VAR_PROGS .. "/games/tanks/tanks"},
|
{"GAMES/TANKS", VAR_PROGS .. "/games/tanks/tanks"},
|
||||||
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
|
{"GAMES/TETRIS", VAR_PROGS .. "/games/tetris/tetris"},
|
||||||
|
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
|
||||||
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
|
{"LIB/ARCHIVER.OBJ", VAR_PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
|
||||||
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
|
{"LIB/BOX_LIB.OBJ", VAR_PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
|
||||||
{"LIB/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
|
{"LIB/BUF2D.OBJ", VAR_PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
|
||||||
@@ -517,6 +521,7 @@ tup.append_table(img_files, {
|
|||||||
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
{"LIB/SORT.OBJ", VAR_PROGS .. "/develop/libraries/sorter/sort.obj"},
|
||||||
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
{"LIB/TINYGL.OBJ", VAR_PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
|
||||||
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
{"MEDIA/ANIMAGE", VAR_PROGS .. "/media/animage/trunk/animage"},
|
||||||
|
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
||||||
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
{"MEDIA/KIV", VAR_PROGS .. "/media/kiv/trunk/kiv"},
|
||||||
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
{"MEDIA/LISTPLAY", VAR_PROGS .. "/media/listplay/trunk/listplay"},
|
||||||
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
{"MEDIA/MIDAMP", VAR_PROGS .. "/media/midamp/trunk/midamp"},
|
||||||
@@ -596,10 +601,10 @@ tup.append_table(extra_files, {
|
|||||||
{"kolibrios/3D/voxel_utilites/VOX_CREATOR" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_creator"},
|
{"kolibrios/3D/voxel_utilites/VOX_CREATOR" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_creator"},
|
||||||
{"kolibrios/3D/voxel_utilites/VOX_MOVER" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_mover"},
|
{"kolibrios/3D/voxel_utilites/VOX_MOVER" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_mover"},
|
||||||
{"kolibrios/3D/voxel_utilites/VOX_TGL" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
|
{"kolibrios/3D/voxel_utilites/VOX_TGL" , VAR_PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
|
||||||
|
{"kolibrios/demos/flag", VAR_PROGS .. "/demos/flag/flag"},
|
||||||
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
|
{"kolibrios/demos/life3", VAR_PROGS .. "/games/life3/life3"},
|
||||||
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
|
{"kolibrios/demos/qjulia", VAR_PROGS .. "/demos/qjulia/trunk/qjulia"},
|
||||||
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
|
{"kolibrios/develop/koldbg", VAR_PROGS .. "/develop/koldbg/koldbg"},
|
||||||
{"kolibrios/develop/utils/charset_checker", VAR_PROGS .. "/other/charset_checker/charchck"},
|
|
||||||
{"kolibrios/games/Almaz", VAR_PROGS .. "/games/almaz/almaz"},
|
{"kolibrios/games/Almaz", VAR_PROGS .. "/games/almaz/almaz"},
|
||||||
{"kolibrios/games/arcanii", VAR_PROGS .. "/games/arcanii/arcanii"},
|
{"kolibrios/games/arcanii", VAR_PROGS .. "/games/arcanii/arcanii"},
|
||||||
{"kolibrios/games/bomber/bomber", VAR_PROGS .. "/games/bomber/bomber"},
|
{"kolibrios/games/bomber/bomber", VAR_PROGS .. "/games/bomber/bomber"},
|
||||||
@@ -620,41 +625,25 @@ tup.append_table(extra_files, {
|
|||||||
{"kolibrios/media/zsea/plugins/rotate.obj", VAR_PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
|
{"kolibrios/media/zsea/plugins/rotate.obj", VAR_PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
|
||||||
{"kolibrios/media/zsea/plugins/scaling.obj", VAR_PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
|
{"kolibrios/media/zsea/plugins/scaling.obj", VAR_PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
|
||||||
{"kolibrios/utils/AMDtemp", VAR_PROGS .. "/system/amd_temp_view/AMDtemp"},
|
{"kolibrios/utils/AMDtemp", VAR_PROGS .. "/system/amd_temp_view/AMDtemp"},
|
||||||
{"kolibrios/utils/calcplus", VAR_PROGS .. "/other/calcplus/calcplus"},
|
|
||||||
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
|
{"kolibrios/utils/kfm/kfm", VAR_PROGS .. "/fs/kfm/trunk/kfm"},
|
||||||
{"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"},
|
{"kolibrios/utils/tedit/t_edit", VAR_PROGS .. "/other/t_edit/t_edit"},
|
||||||
|
{"kolibrios/3D/blocks/block.bin", VAR_PROGS .. "/bcc32/games/blocks/block.bin"}
|
||||||
})
|
})
|
||||||
-- For russian build, add russian-only programs.
|
-- For russian build, add russian-only programs.
|
||||||
if build_type == "ru_RU" then tup.append_table(img_files, {
|
if build_type == "ru_RU" then tup.append_table(img_files, {
|
||||||
{"PERIOD", VAR_PROGS .. "/other/period/trunk/period"},
|
|
||||||
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
{"GAMES/KLAVISHA", VAR_PROGS .. "/games/klavisha/klavisha"},
|
||||||
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
|
||||||
}) else tup.append_table(img_files, {
|
}) else tup.append_table(img_files, {
|
||||||
{"DEVELOP/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
|
{"DEVELOP/EXAMPLES/TESTCON2", VAR_PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
|
||||||
}) end
|
}) end
|
||||||
|
|
||||||
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
if build_type == "ru_RU" then tup.append_table(extra_files, {
|
||||||
|
{"kolibrios/utils/period", VAR_PROGS .. "/other/period/trunk/period"},
|
||||||
{"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
|
{"kolibrios/games/Dungeons/Dungeons", VAR_PROGS .. "/games/Dungeons/Dungeons"},
|
||||||
}) end
|
}) end
|
||||||
|
|
||||||
end -- tup.getconfig('NO_FASM') ~= 'full'
|
end -- tup.getconfig('NO_FASM') ~= 'full'
|
||||||
|
|
||||||
-- Programs that require NASM to compile.
|
|
||||||
if tup.getconfig('NO_NASM') ~= 'full' then
|
|
||||||
tup.append_table(img_files, {
|
|
||||||
{"ACLOCK", VAR_PROGS .. "/demos/aclock/trunk/aclock"},
|
|
||||||
{"LOD", VAR_PROGS .. "/fs/lod/lod"},
|
|
||||||
{"TIMER", VAR_PROGS .. "/other/Timer/timer"},
|
|
||||||
{"TINFO", VAR_PROGS .. "/system/tinfo/tinfo"},
|
|
||||||
{"DEVELOP/MSTATE", VAR_PROGS .. "/develop/mstate/mstate"},
|
|
||||||
{"DEVELOP/GENFILES", VAR_PROGS .. "/testing/genfiles/GenFiles"},
|
|
||||||
{"GAMES/C4", VAR_PROGS .. "/games/c4/c4"},
|
|
||||||
{"MEDIA/FILLSCR", VAR_PROGS .. "/media/FillScr/fillscr"},
|
|
||||||
})
|
|
||||||
tup.append_table(extra_files, {
|
|
||||||
})
|
|
||||||
end -- tup.getconfig('NO_NASM') ~= 'full'
|
|
||||||
|
|
||||||
-- Programs that require JWASM to compile.
|
-- Programs that require JWASM to compile.
|
||||||
if tup.getconfig('NO_JWASM') ~= 'full' then
|
if tup.getconfig('NO_JWASM') ~= 'full' then
|
||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
@@ -675,15 +664,14 @@ tup.append_table(img_files, {
|
|||||||
{"EASYSHOT", VAR_PROGS .. "/cmm/misc/easyshot.com"},
|
{"EASYSHOT", VAR_PROGS .. "/cmm/misc/easyshot.com"},
|
||||||
{"MOUSECFG", VAR_PROGS .. "/cmm/mousecfg/mousecfg.com"},
|
{"MOUSECFG", VAR_PROGS .. "/cmm/mousecfg/mousecfg.com"},
|
||||||
{"BARSCFG", VAR_PROGS .. "/cmm/barscfg/barscfg.com"},
|
{"BARSCFG", VAR_PROGS .. "/cmm/barscfg/barscfg.com"},
|
||||||
|
{"SEARCH", VAR_PROGS .. "/cmm/misc/search.com"},
|
||||||
{"SYSPANEL", VAR_PROGS .. "/cmm/misc/software_widget.com"},
|
{"SYSPANEL", VAR_PROGS .. "/cmm/misc/software_widget.com"},
|
||||||
{"SYSMON", VAR_PROGS .. "/cmm/sysmon/sysmon.com"},
|
{"SYSMON", VAR_PROGS .. "/cmm/sysmon/sysmon.com"},
|
||||||
{"TMPDISK", VAR_PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
|
{"TMPDISK", VAR_PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
|
||||||
{"DEVELOP/CLIPVIEW", VAR_PROGS .. "/cmm/clipview/clipview.com"},
|
{"DEVELOP/CLIPVIEW", VAR_PROGS .. "/cmm/clipview/clipview.com"},
|
||||||
{"DEVELOP/MENU", VAR_PROGS .. "/cmm/menu/menu.com"},
|
{"DEVELOP/MENU", VAR_PROGS .. "/cmm/menu/menu.com"},
|
||||||
{"DEVELOP/PIPET", VAR_PROGS .. "/cmm/misc/pipet.com"},
|
|
||||||
{"File Managers/EOLITE", VAR_PROGS .. "/cmm/eolite/Eolite.com"},
|
{"File Managers/EOLITE", VAR_PROGS .. "/cmm/eolite/Eolite.com"},
|
||||||
{"File Managers/KFM2", VAR_PROGS .. "/cmm/misc/kfm2.com"},
|
{"File Managers/KFM2", VAR_PROGS .. "/cmm/misc/kfm2.com"},
|
||||||
{"KF_VIEW", VAR_PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
|
|
||||||
{"DEVELOP/DIFF", VAR_PROGS .. "/cmm/diff/diff.com"},
|
{"DEVELOP/DIFF", VAR_PROGS .. "/cmm/diff/diff.com"},
|
||||||
{"GAMES/CLICKS", VAR_PROGS .. "/games/clicks/clicks.com"},
|
{"GAMES/CLICKS", VAR_PROGS .. "/games/clicks/clicks.com"},
|
||||||
{"GAMES/MBLOCKS", VAR_PROGS .. "/cmm/misc/mblocks.com"},
|
{"GAMES/MBLOCKS", VAR_PROGS .. "/cmm/misc/mblocks.com"},
|
||||||
@@ -730,6 +718,7 @@ if tup.getconfig('NO_TCC') ~= 'full' then
|
|||||||
tup.append_table(img_files, {
|
tup.append_table(img_files, {
|
||||||
{"NETWORK/WHOIS", VAR_PROGS .. "/network/whois/whois"},
|
{"NETWORK/WHOIS", VAR_PROGS .. "/network/whois/whois"},
|
||||||
{"SHELL", VAR_PROGS .. "/system/shell/shell"},
|
{"SHELL", VAR_PROGS .. "/system/shell/shell"},
|
||||||
|
{"GAMES/DINO", VAR_PROGS .. "/games/dino/dino"},
|
||||||
})
|
})
|
||||||
tup.append_table(extra_files, {
|
tup.append_table(extra_files, {
|
||||||
{"kolibrios/utils/thashview", VAR_PROGS .. "/other/TinyHashView/thashview"},
|
{"kolibrios/utils/thashview", VAR_PROGS .. "/other/TinyHashView/thashview"},
|
||||||
@@ -901,10 +890,6 @@ for i,v in ipairs(img_files) do
|
|||||||
str = string.gsub(str, "%%", "%%%%") -- escape % as %%
|
str = string.gsub(str, "%%", "%%%%") -- escape % as %%
|
||||||
cmd += " && str=" .. str
|
cmd += " && str=" .. str
|
||||||
cmd += ' && echo -n $str | dd status=none of=%o bs=1 seek=`expr 274 - length "$str"` conv=notrunc'
|
cmd += ' && echo -n $str | dd status=none of=%o bs=1 seek=`expr 274 - length "$str"` conv=notrunc'
|
||||||
str2='$(get-current-cmtid|grep -oE "\\+[0-9]+")'
|
|
||||||
str2 = string.gsub(str2, "%$", "\\$") -- escape $ as \$
|
|
||||||
cmd += " && str2=" .. str2
|
|
||||||
cmd += ' && echo -n $str2 | dd status=none of=%o bs=1 seek=216 conv=notrunc'
|
|
||||||
end
|
end
|
||||||
local_file = VAR_KERNEL .. "/.kernel.mnt"
|
local_file = VAR_KERNEL .. "/.kernel.mnt"
|
||||||
tup.definerule{inputs = {v[2]}, command = cmd, outputs = {local_file}}
|
tup.definerule{inputs = {v[2]}, command = cmd, outputs = {local_file}}
|
||||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 720 B After Width: | Height: | Size: 700 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 809 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 19 KiB |
@@ -29,7 +29,6 @@ Dicty=/k/utils/DICTY.KEX,79
|
|||||||
fNav=/k/utils/fNav/fNav,93
|
fNav=/k/utils/fNav/fNav,93
|
||||||
CncEditor=/k/utils/cnc_editor/cnc_editor,15
|
CncEditor=/k/utils/cnc_editor/cnc_editor,15
|
||||||
Life=/k/demos/life2,13
|
Life=/k/demos/life2,13
|
||||||
Calc+=/k/utils/calcplus,4
|
|
||||||
TinyBasic=/k/develop/TinyBasic/TinyBasic,91
|
TinyBasic=/k/develop/TinyBasic/TinyBasic,91
|
||||||
THashView=/k/utils/thashview,124
|
THashView=/k/utils/thashview,124
|
||||||
Notes=/k/utils/notes,117
|
Notes=/k/utils/notes,117
|
||||||
|
@@ -79,7 +79,7 @@ next=$TextEditor
|
|||||||
[Assoc]
|
[Assoc]
|
||||||
/=/sys/file managers/eolite
|
/=/sys/file managers/eolite
|
||||||
|
|
||||||
kf=/sys/KF_VIEW
|
kf=/sys/syspanel
|
||||||
|
|
||||||
txt=$CodeEdit
|
txt=$CodeEdit
|
||||||
log=$CodeEdit
|
log=$CodeEdit
|
||||||
|
BIN
data/common/signs.png
Normal file
After Width: | Height: | Size: 66 KiB |
2
data/en_US/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
tup.rule("welcome.htm", "cp %f %o" .. tup.getconfig("KPACK_CMD"), "welcome.htm.kpack")
|
@@ -1,14 +1,16 @@
|
|||||||
The following "hot" shortcut keys are used in the system:
|
The following "hot" shortcut keys are used in the system:
|
||||||
(Indexing on time of appearance in the system)
|
(Indexing on time of appearance in the system)
|
||||||
1) Ctrl + Alt + Del start of the application CPU (the manager of processes), is a sole combination maintained on a level of a kernel, all rest "hot" key is realized at the expense of the application @TASKBAR.
|
1) Ctrl + Alt + Del start of the application CPU (the manager of processes), is a sole combination maintained on a level of a kernel, all rest "hot" key is realized at the expense of the application @TASKBAR.
|
||||||
2) Ctrl + Shift - switching of keyboard layout.
|
2) Ctrl + Shift - switching of keyboard layout
|
||||||
3) Win - start of the application MENU.
|
3) Win - start of the application MENU
|
||||||
4) Alt + Ctrl + F12 - start of the application END.
|
4) Alt + Ctrl + F12 - start of the application END
|
||||||
5) Alt + F4 - terminate the active application.
|
5) Alt + F4 - terminate the active application
|
||||||
6) Alt + Tab - switch to the next (in the window stack) window
|
6) Alt + Tab - switch to the next window
|
||||||
7) Alt + Shift + Tab - switch to the previous (in the window stack) window
|
7) Alt + Shift + Tab - switch to the previous window
|
||||||
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
||||||
9) Alt + 1...7 - fast switching to the selected keyboard layout (even if absent for Ctrl + Shift)
|
9) Alt + 1...7 - fast switching to the selected keyboard layout (even if absent for Ctrl + Shift)
|
||||||
10) Win + D - minimize/restore all windows (cleaning of desktop)
|
10) Win + D - minimize/restore all windows
|
||||||
11) Win + R - start of the application RUN
|
11) Win + R - start of the application RUN
|
||||||
12) Ctrl + PrintScreen - start of the application SCRSHOOT. Just do a screen shot and the user is offered to specify (with OpenDialog) where to save the BMP image.
|
12) Ctrl + PrintScreen - start of the application SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - change sound volume
|
||||||
|
Ctrl + Alt + Up / Down - mute and unmute sound
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
@@ -235,8 +235,8 @@ ico=58
|
|||||||
x=68
|
x=68
|
||||||
y=68
|
y=68
|
||||||
[21]
|
[21]
|
||||||
name=CALC
|
name=CALC+
|
||||||
path=CALC
|
path=CALCPLUS
|
||||||
param=
|
param=
|
||||||
ico=4
|
ico=4
|
||||||
x=204
|
x=204
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
23 Game Center |allgames
|
23 Game Center |allgames
|
||||||
60 System panel |syspanel
|
60 System panel |syspanel
|
||||||
18 Documentation |docpack
|
18 Documentation |docpack
|
||||||
|
49 Search |search
|
||||||
53 Run |run
|
53 Run |run
|
||||||
04 Shut down |end
|
04 Shut down |end
|
||||||
#1 **** DEMOS
|
#1 **** DEMOS
|
||||||
@@ -57,8 +58,7 @@
|
|||||||
20 Diff Tool |develop/diff
|
20 Diff Tool |develop/diff
|
||||||
52 Shared resources |/sys/@reshare
|
52 Shared resources |/sys/@reshare
|
||||||
34 Base Converter |develop/h2d2b
|
34 Base Converter |develop/h2d2b
|
||||||
59 Character table |develop/ASCIIVju
|
59 Charsets Viewer |develop/CHARSETS
|
||||||
59 Key ASCII-codes |develop/keyascii
|
|
||||||
59 Key SCAN-codes |develop/scancode
|
59 Key SCAN-codes |develop/scancode
|
||||||
#6 **** EMUL
|
#6 **** EMUL
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
@@ -92,6 +92,7 @@
|
|||||||
59 Screen keyboard |zkey
|
59 Screen keyboard |zkey
|
||||||
#10 **** DATA PROCESSING
|
#10 **** DATA PROCESSING
|
||||||
16 Calculator |calc
|
16 Calculator |calc
|
||||||
|
16 Calculator+ |calcplus
|
||||||
03 Tinypad |tinypad
|
03 Tinypad |tinypad
|
||||||
28 CodeEdit |develop/cedit
|
28 CodeEdit |develop/cedit
|
||||||
21 Table processor |table
|
21 Table processor |table
|
||||||
|
95
data/en_US/welcome.htm
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
<html>
|
||||||
|
<title>Welcome notes</title>
|
||||||
|
|
||||||
|
<body bgcolor=#fff>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
<font color=1BB71A>Welcome to KolibriOS</font>
|
||||||
|
</h1>
|
||||||
|
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">
|
||||||
|
Dear friends,
|
||||||
|
|
||||||
|
What you see now is the most compact operating system in the whole world. KolibriOS is a piece of programming art that is based on logic and coffee.
|
||||||
|
|
||||||
|
As no one reads manuals, I'm here to help with the most common issues that new users of KolibriOS are facing. This document is also required to read for any <b>YouTube blogger</b> who wants to make a review of the system :)
|
||||||
|
|
||||||
|
<dd><h3><kosicon n=5> Floppy version</h3>
|
||||||
|
The asterisk [*] in the Menu means the app isn't available in the Floppy version, only in the Big distro (Flash/ISO/UEFI-HDD). Not all programs are available via Menu to encourage you to explore KolibriOS files by yourself.
|
||||||
|
|
||||||
|
<h3><kosicon n=25> If you have problems with USB</h3>
|
||||||
|
Only USB 1.1 and USB 2.0 ports are supported, not USB 3+. And yep, the USB driver is written entirely in assembler. Some motherboards have options like "USB Legacy Support" or something similar, which may help the system detect your device. Also, some ports on your motherboard may work while others may not, only G-d knows why. So, play with the BIOS/UEFI settings and try different ports.
|
||||||
|
|
||||||
|
<h3><kosicon n=7> Sound</h3>
|
||||||
|
List of supported devices:
|
||||||
|
- Most AC97 cards: Intel, nForce, VIA
|
||||||
|
- A variety of HD Audio devices: Intel, Realtek...
|
||||||
|
- SIS PCI audio (Sis 7012)
|
||||||
|
- Creative labs EMU10K1X (Dell OEM)
|
||||||
|
- Media Forte FM801
|
||||||
|
- ISA Sound Blaster 16
|
||||||
|
<i>Only THIS particular model works,
|
||||||
|
not other cards that have software SB16-emulation</i>
|
||||||
|
|
||||||
|
<h3><kosicon n=61> Video</h3>
|
||||||
|
By default, you can change the resolution only on the blue boot screen. The modes listed there are provided by the video card's BIOS. It is impossible to 'simply add additional screen modes to the list'. If video card's BIOS doesn't provide some modes then you need a driver. It is not possible to write a generic video card driver. Separate driver must be written for each specific video card model.
|
||||||
|
Intel and AMD drivers for some video cards are ported from Linux and are available in the Big distro.
|
||||||
|
|
||||||
|
Check SYSPANEL. Features: ability to change resolution in KolibriOS, hardware cursor (not actual anymore), bit-blit operations acceleration.
|
||||||
|
|
||||||
|
<h3><kosicon n=25> Wi-Fi</h3>
|
||||||
|
Not supported. You have to know that the Wi-Fi specification is so complex that it is almost impossible to write the code for it from scratch. Only big OSes like Windows / Linux / BSD have it. MacOS and Haiku just ported the BSD drivers. I don't say porting them to KolibiOS is not possible, but the required effort is going to be tremendous.
|
||||||
|
|
||||||
|
<h3><kosicon n=25> LAN/Ethernet</h3>
|
||||||
|
List of supported devices:
|
||||||
|
- 3c59x 3Com Fast EtherLink (3c59x/450/555/556/575/900/905/980)
|
||||||
|
- ar81xx Atheros 8131/8132/8151/8152/8161/8162/8171/8172
|
||||||
|
Killer E2200/E2400/E2500
|
||||||
|
- dec21x4x* Accton en1207B-TX, DEC 21140, ..., VirtualPC
|
||||||
|
- forcedeth* Nvidia nForce chipset integrated Ethernet
|
||||||
|
- i8255x Intel eepro/100 (i8255x, i82562, i82801, ...), QEMU
|
||||||
|
- i8254x Intel PRO/1000 (i8254x), Virtualbox, BOCHS, QEMU
|
||||||
|
- mtd80x Myson MTD803
|
||||||
|
- pcnet32 AMD PCnet (79c970, 79c978, 79c973, ...), Virtualbox, QEMU
|
||||||
|
- r6040 RDC Semiconductors R6040
|
||||||
|
- rhine VIA Rhine II and III
|
||||||
|
- rtl8029 Realtek 8029/8019, ne2000 PCI, BOCHS, QEMU
|
||||||
|
- rtl8139 Realtek 8139 and clones, QEMU
|
||||||
|
- rtl8169 Realtek 8110/8111/8167/8168/8169
|
||||||
|
- sis900 SiS900, 7016
|
||||||
|
|
||||||
|
* - in development
|
||||||
|
|
||||||
|
Blessed be our Flemish friend Jeffrey, who has written most of the Network staff by him: stack, drivers, and a lot of apps (except WebView).
|
||||||
|
|
||||||
|
<h3><kosicon n=12> WebView</h3>
|
||||||
|
It was never intended to be a browser, but rather a Help Center that uses HTML markup. It fits this purpose well, doesn't it? According to current WebView's codebase (that was my first app ever) it will never become a normal web browser. Please help us and write/port something good. For example, it will be nice try to finish Netsurf port.
|
||||||
|
|
||||||
|
<h3><kosicon n=9> How did you achieve so much while being so small?</h3>
|
||||||
|
- Kernel, almost all drivers and most applications are written in assembly language
|
||||||
|
- Files in IMG are packed via the LZMA algorithm from 7-Zip. They are unpacked to RAM when accessed
|
||||||
|
- Most of the images are manually optimized: posterization, dithering and other techniques were used
|
||||||
|
- Files names in IMG fit 8.3 naming convention (name.extension) which doesn't use additional FAT12 space
|
||||||
|
- Image files are combined into a single file
|
||||||
|
- Compact binary header of applications, no sections
|
||||||
|
- Resources are reused, and file duplication is avoided, for example:
|
||||||
|
~ Many apps use shared libraries
|
||||||
|
~ KFM2 and Eolite are a single app, just with different appearance
|
||||||
|
~ APP+, Games Center and System Panel are a single app also
|
||||||
|
~ Memory Blocks game uses system icons as images
|
||||||
|
|
||||||
|
|
||||||
|
See more <a href=http://wiki.kolibrios.org/wiki/Hardware_Support>http://wiki.kolibrios.org/wiki/Hardware_Support</a>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<h3><kosicon n=13> Last words</h3>
|
||||||
|
<font bg=#F9F0A3>We want to express our gratitude to every KolibriOS contributor. Also, we would like to give special thanks to Ville M. Turjanmaa, the author of MenuetOS, the predecessor of our system.
|
||||||
|
|
||||||
|
Finally, we want to thank you, brave and curious users, as we are doing it all for you!
|
||||||
|
|
||||||
|
Have fun!</font>
|
||||||
|
|
||||||
|
Sincerely yours,
|
||||||
|
KolibriOS Team
|
||||||
|
|
||||||
|
<img src=/kolibrios/res/system/signs.png alt="You have to use Big Distro to see this image!">
|
||||||
|
<!-- Somewhere deep in the Galaxy stars light up and go out, empires are born and turn to dust. In this impenetrable darkness and decadence, there are people who are still working on KolibriOS. Many years will pass and perhaps you and I will no longer be here, and our great-grandchildren will ask "Who were those insane who made such an incredible OS?" -->
|
@@ -1,14 +1,16 @@
|
|||||||
The following "hot" shortcut keys are used in the system:
|
The following "hot" shortcut keys are used in the system:
|
||||||
(Indexing on time of appearance in the system)
|
(Indexing on time of appearance in the system)
|
||||||
1) Ctrl + Alt + Del start of the application CPU (the manager of processes), is a sole combination maintained on a level of a kernel, all rest "hot" key is realized at the expense of the application @TASKBAR.
|
1) Ctrl + Alt + Del start of the application CPU (the manager of processes), is a sole combination maintained on a level of a kernel, all rest "hot" key is realized at the expense of the application @TASKBAR.
|
||||||
2) Ctrl + Shift - switching of keyboard layout.
|
2) Ctrl + Shift - switching of keyboard layout
|
||||||
3) Win - start of the application MENU.
|
3) Win - start of the application MENU
|
||||||
4) Alt + Ctrl + F12 - start of the application END.
|
4) Alt + Ctrl + F12 - start of the application END
|
||||||
5) Alt + F4 - terminate the active application.
|
5) Alt + F4 - terminate the active application
|
||||||
6) Alt + Tab - switch to the next (in the window stack) window
|
6) Alt + Tab - switch to the next window
|
||||||
7) Alt + Shift + Tab - switch to the previous (in the window stack) window
|
7) Alt + Shift + Tab - switch to the previous window
|
||||||
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
8) Alt + Shift + NumLock - start of the application MOUSEMUL, which emulates mouse with numpad, when NumLock is on.
|
||||||
9) Alt + 1...7 - fast switching to the selected keyboard layout (even if absent for Ctrl + Shift)
|
9) Alt + 1...7 - fast switching to the selected keyboard layout (even if absent for Ctrl + Shift)
|
||||||
10) Win + D - minimize/restore all windows (cleaning of desktop)
|
10) Win + D - minimize/restore all windows
|
||||||
11) Win + R - start of the application RUN
|
11) Win + R - start of the application RUN
|
||||||
12) Ctrl + PrintScreen - start of the application SCRSHOOT. Just do a screen shot and the user is offered to specify (with OpenDialog) where to save the BMP image.
|
12) Ctrl + PrintScreen - start of the application SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - change sound volume
|
||||||
|
Ctrl + Alt + Up / Down - mute and unmute sound
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
@@ -235,8 +235,8 @@ ico=58
|
|||||||
x=68
|
x=68
|
||||||
y=68
|
y=68
|
||||||
[21]
|
[21]
|
||||||
name=CALC
|
name=CALC+
|
||||||
path=CALC
|
path=CALCPLUS
|
||||||
param=
|
param=
|
||||||
ico=4
|
ico=4
|
||||||
x=204
|
x=204
|
||||||
|
@@ -13,6 +13,7 @@
|
|||||||
16 Centro de juegos |allgames
|
16 Centro de juegos |allgames
|
||||||
60 System panel |syspanel
|
60 System panel |syspanel
|
||||||
18 Ayuda |docpack
|
18 Ayuda |docpack
|
||||||
|
49 Buscar |search
|
||||||
53 Ejecutar aplicaci<63>n |run
|
53 Ejecutar aplicaci<63>n |run
|
||||||
04 Apagar |end
|
04 Apagar |end
|
||||||
#1 **** DEMOS
|
#1 **** DEMOS
|
||||||
@@ -56,8 +57,7 @@
|
|||||||
49 Debugger mtdbg |develop/mtdbg
|
49 Debugger mtdbg |develop/mtdbg
|
||||||
49 Debugger koldbg * |/kolibrios/develop/koldbg
|
49 Debugger koldbg * |/kolibrios/develop/koldbg
|
||||||
16 Hex2Dec2Bin |develop/h2d2b
|
16 Hex2Dec2Bin |develop/h2d2b
|
||||||
16 Tabla de caracteres |ASCIIVju
|
16 Tabla de caracteres |develop/CHARSETS
|
||||||
16 C<>digos ASCII |develop/keyascii
|
|
||||||
16 C<>digos SCAN |develop/scancode
|
16 C<>digos SCAN |develop/scancode
|
||||||
#6 **** EMULATORS
|
#6 **** EMULATORS
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
@@ -96,6 +96,7 @@
|
|||||||
24 NDN * |/kolibrios/utils/ndn/ndn
|
24 NDN * |/kolibrios/utils/ndn/ndn
|
||||||
#11 **** PROCESO DE DATOS
|
#11 **** PROCESO DE DATOS
|
||||||
16 Calculadora |calc
|
16 Calculadora |calc
|
||||||
|
16 Calculadora+ |calcplus
|
||||||
16 Tinypad |tinypad
|
16 Tinypad |tinypad
|
||||||
16 CodeEdit |develop/cedit
|
16 CodeEdit |develop/cedit
|
||||||
16 Procesador de tablas |table
|
16 Procesador de tablas |table
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
@@ -235,8 +235,8 @@ ico=58
|
|||||||
x=68
|
x=68
|
||||||
y=68
|
y=68
|
||||||
[21]
|
[21]
|
||||||
name=CALC
|
name=CALC+
|
||||||
path=CALC
|
path=CALCPLUS
|
||||||
param=
|
param=
|
||||||
ico=4
|
ico=4
|
||||||
x=204
|
x=204
|
||||||
|
@@ -80,6 +80,7 @@
|
|||||||
65 NDN * |/kolibrios/utils/ndn/ndn
|
65 NDN * |/kolibrios/utils/ndn/ndn
|
||||||
#11 **** DATA PROCESSING ****
|
#11 **** DATA PROCESSING ****
|
||||||
16 Kalkulaator |calc
|
16 Kalkulaator |calc
|
||||||
|
16 Kalkulaator+ |calcplus
|
||||||
16 Teksti redaktor |tinypad
|
16 Teksti redaktor |tinypad
|
||||||
16 CodeEdit |develop/cedit
|
16 CodeEdit |develop/cedit
|
||||||
16 Tabelarvutus |table
|
16 Tabelarvutus |table
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
@@ -235,8 +235,8 @@ ico=58
|
|||||||
x=68
|
x=68
|
||||||
y=68
|
y=68
|
||||||
[21]
|
[21]
|
||||||
name=CALC
|
name=CALC+
|
||||||
path=CALC
|
path=CALCPLUS
|
||||||
param=
|
param=
|
||||||
ico=4
|
ico=4
|
||||||
x=204
|
x=204
|
||||||
|
@@ -79,6 +79,7 @@
|
|||||||
65 NDN * |/kolibrios/utils/ndn/ndn
|
65 NDN * |/kolibrios/utils/ndn/ndn
|
||||||
#11 **** DATA PROCESSING
|
#11 **** DATA PROCESSING
|
||||||
16 Calcolatrice |calc
|
16 Calcolatrice |calc
|
||||||
|
16 Calcolatrice+ |calcplus
|
||||||
16 Tinypad |tinypad
|
16 Tinypad |tinypad
|
||||||
16 CodeEdit |develop/cedit
|
16 CodeEdit |develop/cedit
|
||||||
16 Table Processor |table
|
16 Table Processor |table
|
||||||
|
@@ -1,14 +1,16 @@
|
|||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 "<22><><EFBFBD><EFBFBD>稥" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>:
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 "<22><><EFBFBD><EFBFBD>稥" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>:
|
||||||
(<28>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>)
|
(<28>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD> <20><> <20>६<EFBFBD><E0A5AC><EFBFBD> <20><><EFBFBD><EFA2AB><EFBFBD><EFBFBD> <20> <20><><EFBFBD>⥬<EFBFBD>)
|
||||||
1) Ctrl + Alt + Del <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CPU (<28><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ), <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ঠ<EFBFBD><E0A6A0><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><>⠫쭮<E2A0AB> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @TASKBAR.
|
1) Ctrl + Alt + Del <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CPU (<28><>ᯥ<EFBFBD><E1AFA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ), <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⢥<EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ঠ<EFBFBD><E0A6A0><EFBFBD><EFBFBD> <20><> <20><EFBFBD><E0AEA2> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><>⠫쭮<E2A0AB> ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @TASKBAR.
|
||||||
2) Ctrl + Shift - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
2) Ctrl + Shift - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
3) Win - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MENU.
|
3) Win - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MENU
|
||||||
4) Alt + Ctrl + F12 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> END.
|
4) Alt + Ctrl + F12 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> END
|
||||||
5) Alt + F4 - <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
5) Alt + F4 - <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
6) Alt + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <><E1ABA5><EFBFBD>饥 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>) <20><><EFBFBD><EFBFBD>
|
6) Alt + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <><E1ABA5><EFBFBD>饥 <20><><EFBFBD><EFBFBD>
|
||||||
7) Alt + Shift + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>饥 (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⥪<EFBFBD>) <20><><EFBFBD><EFBFBD>
|
7) Alt + Shift + Tab - <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD>饥 <20><><EFBFBD><EFBFBD>
|
||||||
8) Alt + Shift + NumLock - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOUSEMUL, <20><>㫨<EFBFBD><E3ABA8><EFBFBD>饣<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NumLock <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD> <20>㬯<EFBFBD><E3ACAF><EFBFBD>
|
8) Alt + Shift + NumLock - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MOUSEMUL, <20><>㫨<EFBFBD><E3ABA8><EFBFBD>饣<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NumLock <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>蠬<EFBFBD> <20>㬯<EFBFBD><E3ACAF><EFBFBD>
|
||||||
9) Alt + 1...7 - <20><><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl + Shift)
|
9) Alt + 1...7 - <20><><EFBFBD><EFBFBD> <20><>४<EFBFBD><E0A5AA>祭<EFBFBD><E7A5AD> <20><> <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> <20><>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ctrl + Shift)
|
||||||
10) Win + D - ᢥ<><E1A2A5><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>⪠ ࠡ<>祣<EFBFBD> <20>⮫<EFBFBD>)
|
10) Win + D - ᢥ<><E1A2A5><EFBFBD><EFBFBD><EFBFBD>/ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
11) Win + R - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RUN
|
11) Win + R - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RUN
|
||||||
12) Ctrl + PrintScreen - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SCRSHOOT. <20>ࠧ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᭨<><E1ADA8><EFBFBD> <20><>࠭<EFBFBD> <20> <20><><EFBFBD>짮<EFBFBD><ECA7AE>⥫<EFBFBD> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㪠<><E3AAA0><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OpenDialog, <20>㤠 <20><><EFBFBD>࠭<EFBFBD><E0A0AD><EFBFBD> ᭨<><E1ADA8><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> BMP.
|
12) Ctrl + PrintScreen - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SCRSHOOT
|
||||||
|
13) Ctrl + Alt + Left / Right - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEAC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
Ctrl + Alt + Up / Down - <20>몫<EFBFBD><EBAAAB><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
@@ -116,8 +116,8 @@ ico=8
|
|||||||
x=-67
|
x=-67
|
||||||
y=68
|
y=68
|
||||||
[10]
|
[10]
|
||||||
name=BOARD
|
name=DBGBOARD
|
||||||
path=/SYS/DEVELOP/BOARD
|
path=/SYS/DEVELOP/DBGBOARD
|
||||||
param=
|
param=
|
||||||
ico=19
|
ico=19
|
||||||
x=-135
|
x=-135
|
||||||
@@ -235,8 +235,8 @@ ico=58
|
|||||||
x=68
|
x=68
|
||||||
y=68
|
y=68
|
||||||
[21]
|
[21]
|
||||||
name=CALC
|
name=CALC+
|
||||||
path=CALC
|
path=CALCPLUS
|
||||||
param=
|
param=
|
||||||
ico=4
|
ico=4
|
||||||
x=204
|
x=204
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
23 <20><><EFBFBD><E0AEA2> 業<><E6A5AD> |allgames
|
23 <20><><EFBFBD><E0AEA2> 業<><E6A5AD> |allgames
|
||||||
60 <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |syspanel
|
60 <20><><EFBFBD>⥬<EFBFBD><E2A5AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |syspanel
|
||||||
18 <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |docpack
|
18 <20><><EFBFBD>㬥<EFBFBD><E3ACA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |docpack
|
||||||
|
49 <20><><EFBFBD><EFBFBD><EFBFBD> |search
|
||||||
53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> |run
|
53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> |run
|
||||||
04 <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> ࠡ<><E0A0A1><EFBFBD> |end
|
04 <20><><EFBFBD><EFBFBD><EFBFBD>襭<EFBFBD><E8A5AD> ࠡ<><E0A0A1><EFBFBD> |end
|
||||||
#1 **** 2D <20><><EFBFBD><EFBFBD><EFBFBD>
|
#1 **** 2D <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -58,8 +59,7 @@
|
|||||||
20 Diff tool |develop/diff
|
20 Diff tool |develop/diff
|
||||||
52 Shared resources |/sys/@reshare
|
52 Shared resources |/sys/@reshare
|
||||||
34 Hex2Dec2Bin |develop/h2d2b
|
34 Hex2Dec2Bin |develop/h2d2b
|
||||||
59 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> |develop/ASCIIVju
|
59 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD> |develop/CHARSETS
|
||||||
59 ASCII-<2D><><EFBFBD><EFBFBD> |develop/keyascii
|
|
||||||
59 SCAN-<2D><><EFBFBD><EFBFBD> |develop/scancode
|
59 SCAN-<2D><><EFBFBD><EFBFBD> |develop/scancode
|
||||||
#6 **** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#6 **** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
24 DOSBox * |/kolibrios/emul/DosBox/dosbox
|
||||||
@@ -90,6 +90,7 @@
|
|||||||
59 <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |zkey
|
59 <20><>࠭<EFBFBD><E0A0AD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |zkey
|
||||||
#10 **** <20><><EFBFBD><EFBFBD>
|
#10 **** <20><><EFBFBD><EFBFBD>
|
||||||
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |calc
|
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |calc
|
||||||
|
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+ |calcplus
|
||||||
03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tinypad |tinypad
|
03 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tinypad |tinypad
|
||||||
28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CodeEdit |develop/cedit
|
28 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CodeEdit |develop/cedit
|
||||||
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |table
|
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |table
|
||||||
@@ -119,7 +120,7 @@
|
|||||||
45 <20><><EFBFBD><EFBFBD>⮩ <20><>ਭ<EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD> |easyshot
|
45 <20><><EFBFBD><EFBFBD>⮩ <20><>ਭ<EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD> |easyshot
|
||||||
29 FB2 <20><>⠫<EFBFBD><E2A0AB> |fb2read
|
29 FB2 <20><>⠫<EFBFBD><E2A0AB> |fb2read
|
||||||
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |aclock
|
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |aclock
|
||||||
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |period
|
21 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |/kolibrios/utils/period
|
||||||
59 <20>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD> KJ|ABuIIIA |games/klavisha
|
59 <20>७<EFBFBD><E0A5AD><EFBFBD><EFBFBD> KJ|ABuIIIA |games/klavisha
|
||||||
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |demos/bcdclk
|
16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> |demos/bcdclk
|
||||||
53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |timer
|
53 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |timer
|
||||||
|
@@ -3,10 +3,25 @@ HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../programs" or tup.getco
|
|||||||
tup.include(HELPERDIR .. "/use_fasm.lua")
|
tup.include(HELPERDIR .. "/use_fasm.lua")
|
||||||
add_include(tup.getvariantdir())
|
add_include(tup.getvariantdir())
|
||||||
|
|
||||||
|
-- environment variables
|
||||||
|
tup.import("KOLIBRIOS_BUILD_OFFSET") -- 1234
|
||||||
|
tup.import("KOLIBRIOS_BUILD_CMTID") -- 0xaabbccdd
|
||||||
|
tup.import("KOLIBRIOS_BUILD_DBGTAG") -- 0x61 for 'a', etc
|
||||||
|
|
||||||
|
str_build = ""
|
||||||
|
if KOLIBRIOS_BUILD_OFFSET then
|
||||||
|
str_build += " -dBUILD_OFFSET=" .. KOLIBRIOS_BUILD_OFFSET
|
||||||
|
end
|
||||||
|
if KOLIBRIOS_BUILD_CMTID then
|
||||||
|
str_build += " -dBUILD_CMTID=" .. KOLIBRIOS_BUILD_CMTID
|
||||||
|
end
|
||||||
|
if KOLIBRIOS_BUILD_DBGTAG then
|
||||||
|
str_build += " -dBUILD_DBGTAG=" .. KOLIBRIOS_BUILD_DBGTAG
|
||||||
|
end
|
||||||
|
|
||||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")) .. " > %o", {"lang.inc"})
|
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")) .. " > %o", {"lang.inc"})
|
||||||
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o " .. tup.getconfig("KERPACK_CMD"), "kernel.mnt")
|
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o -s %o.fas" .. str_build .. tup.getconfig("KERPACK_CMD"), {"kernel.mnt", extra_outputs = {"kernel.mnt.fas"}})
|
||||||
--tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o -s %o.fas" .. tup.getconfig("KERPACK_CMD"), {"kernel.mnt", extra_outputs = {"kernel.mnt.fas"}})
|
|
||||||
--tup.rule({"kernel.mnt.fas", extra_inputs = {"kernel.mnt"}}, "symbols %f %o", "kernel.mnt.sym")
|
--tup.rule({"kernel.mnt.fas", extra_inputs = {"kernel.mnt"}}, "symbols %f %o", "kernel.mnt.sym")
|
||||||
--tup.rule({"kernel.mnt.fas", extra_inputs = {"kernel.mnt"}}, "listing %f %o", "kernel.mnt.lst")
|
--tup.rule({"kernel.mnt.fas", extra_inputs = {"kernel.mnt"}}, "listing %f %o", "kernel.mnt.lst")
|
||||||
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o -dextended_primary_loader=1" .. tup.getconfig("KERPACK_CMD"), "kernel.mnt.ext_loader")
|
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o " .. str_build .. " -dextended_primary_loader=1 " .. tup.getconfig("KERPACK_CMD"), "kernel.mnt.ext_loader")
|
||||||
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o -dpretest_build=1 -ddebug_com_base=0xe9", "kernel.mnt.pretest")
|
tup.rule({"kernel.asm", extra_inputs = {"lang.inc"}}, FASM .. " -m 262144 %f %o " .. str_build .. " -dpretest_build=1 -ddebug_com_base=0xe9", "kernel.mnt.pretest")
|
||||||
|
@@ -29,23 +29,29 @@ macro line_space {
|
|||||||
}
|
}
|
||||||
d80x25_top:
|
d80x25_top:
|
||||||
line_full_top
|
line_full_top
|
||||||
if __REV__ > 0
|
; draw seven digits of the git hash
|
||||||
|
__x = BUILD_CMTID
|
||||||
|
if __x > 0
|
||||||
|
__x = __x SHR 4
|
||||||
cur_line_pos = 75
|
cur_line_pos = 75
|
||||||
store byte ' ' at d80x25_top+cur_line_pos+1
|
store byte ' ' at d80x25_top+cur_line_pos+1
|
||||||
rev_var = __REV__
|
repeat 7
|
||||||
while rev_var > 0
|
digit = __x AND 0xf
|
||||||
store byte rev_var mod 10 + '0' at d80x25_top+cur_line_pos
|
if digit > 9
|
||||||
cur_line_pos = cur_line_pos - 1
|
digit = digit - 10 + 'a'
|
||||||
rev_var = rev_var / 10
|
else
|
||||||
end while
|
digit = digit + '0'
|
||||||
store byte ' ' at d80x25_top+cur_line_pos
|
end if
|
||||||
store dword ' SVN' at d80x25_top+cur_line_pos-4
|
store byte digit at d80x25_top+cur_line_pos
|
||||||
|
cur_line_pos = cur_line_pos - 1
|
||||||
|
__x = __x SHR 4
|
||||||
|
end repeat
|
||||||
|
store byte ' ' at d80x25_top+cur_line_pos
|
||||||
|
store dword ' GIT' at d80x25_top+cur_line_pos-4
|
||||||
end if
|
end if
|
||||||
|
|
||||||
space_msg:
|
space_msg:
|
||||||
line_space
|
line_space
|
||||||
verstr:
|
verstr:
|
||||||
; line_space
|
|
||||||
; version string
|
; version string
|
||||||
db 186,32
|
db 186,32
|
||||||
repeat 78
|
repeat 78
|
||||||
|
@@ -24,9 +24,38 @@ org 0
|
|||||||
; struct kernel_header
|
; struct kernel_header
|
||||||
jmp start_of_code ; jump
|
jmp start_of_code ; jump
|
||||||
db 'KolibriOS ' ; signature
|
db 'KolibriOS ' ; signature
|
||||||
db 'v0.7.7.0 ',13,10,13,10,0 ; FIXME: get distribution version from git tag
|
db 'v0.7.7.0' ; FIXME: get distribution version from git tag?
|
||||||
|
.offset db ' ',13,10,0
|
||||||
dd B32-KERNEL_BASE ; offset of the kernel's 32-bit entry point
|
dd B32-KERNEL_BASE ; offset of the kernel's 32-bit entry point
|
||||||
|
|
||||||
|
cur_line_pos = 0
|
||||||
|
offset_len = 0
|
||||||
|
__x = BUILD_OFFSET
|
||||||
|
if __x > 0
|
||||||
|
store byte '+' at .offset+cur_line_pos
|
||||||
|
if __x < 10
|
||||||
|
offset_len = 2 ; '+' and a digit
|
||||||
|
else if __x < 100
|
||||||
|
offset_len = 3
|
||||||
|
else if __x < 1000
|
||||||
|
offset_len = 4
|
||||||
|
else if __x < 10000
|
||||||
|
offset_len = 5
|
||||||
|
else
|
||||||
|
offset_len = 6
|
||||||
|
end if
|
||||||
|
cur_line_pos = cur_line_pos + offset_len - 1
|
||||||
|
while __x > 0
|
||||||
|
store byte __x mod 10 + '0' at .offset+cur_line_pos
|
||||||
|
cur_line_pos = cur_line_pos - 1
|
||||||
|
__x = __x / 10
|
||||||
|
end while
|
||||||
|
end if
|
||||||
|
if BUILD_DBGTAG > 0
|
||||||
|
store byte '-' at .offset+offset_len
|
||||||
|
store byte BUILD_DBGTAG at .offset+offset_len+1
|
||||||
|
end if
|
||||||
|
|
||||||
include "boot/bootstr.inc" ; language-independent boot messages
|
include "boot/bootstr.inc" ; language-independent boot messages
|
||||||
include "boot/preboot.inc"
|
include "boot/preboot.inc"
|
||||||
|
|
||||||
|
@@ -227,6 +227,33 @@ struct kernel_header
|
|||||||
; KERNEL.MNT file can be booted on BIOS as well as on UEFI.
|
; KERNEL.MNT file can be booted on BIOS as well as on UEFI.
|
||||||
ends
|
ends
|
||||||
|
|
||||||
|
struct kernel_version
|
||||||
|
; OS release number, e.g. 0,7,7,0. Distro-specific.
|
||||||
|
osrel rb 4
|
||||||
|
; A single char like 'a' to append to the version, or 0 to omit it.
|
||||||
|
; 0 means 0.7.7.0+1234, 'a' means 0.7.7.0+1234-a, etc.
|
||||||
|
; This allows developers to determine the debug build by its log.
|
||||||
|
; Unfortunately, users sometimes mess things and test not the build they
|
||||||
|
; were asked to test.
|
||||||
|
dbgtag db ?
|
||||||
|
; The kernel itself doesn't have any version other than its ABI version.
|
||||||
|
; The minor and major parts were meant to mean significant compatible
|
||||||
|
; and incompatible changes correspondingly. It is for a developer to
|
||||||
|
; decide on what is a significant change.
|
||||||
|
abimin db ?
|
||||||
|
; The major ABI version must be at least 0x28 for backward compatibility
|
||||||
|
; with the old revision number: 0x2800 = 10240 > the last SVN revision.
|
||||||
|
abimaj dw ?
|
||||||
|
; In binary, e.g. a short git hash. A single dword is 8 digits which
|
||||||
|
; should be enough for the foreseeable future. We always can get space
|
||||||
|
; for four more digits from the two reserved bytes below if needed.
|
||||||
|
cmtid dd ?
|
||||||
|
reserved dw ?
|
||||||
|
; The number of commits from the last release.
|
||||||
|
offset dw ?
|
||||||
|
ends
|
||||||
|
assert sizeof.kernel_version = 16
|
||||||
|
|
||||||
DRIVE_DATA_SIZE = 16
|
DRIVE_DATA_SIZE = 16
|
||||||
|
|
||||||
OS_BASE = 0x80000000
|
OS_BASE = 0x80000000
|
||||||
|
@@ -970,13 +970,21 @@ picture rb Xsize*Ysize*4 ; 32 бита
|
|||||||
размером 16 байт для будущей совместимости, в будущем могут быть
|
размером 16 байт для будущей совместимости, в будущем могут быть
|
||||||
добавлены некоторые поля.
|
добавлены некоторые поля.
|
||||||
Структура буфера:
|
Структура буфера:
|
||||||
db a,b,c,d для версии a.b.c.d
|
db a,b,c,d для версии ОС a.b.c.d
|
||||||
db 0: зарезервировано
|
db отладочная метка, для релиза всегда 0, иначе любой символ ASCII
|
||||||
dd REV - номер svn-ревизии ядра
|
db младшая часть ABI ядра
|
||||||
Для ядра Kolibri 0.7.7.0+:
|
dw старшая часть ABI ядра
|
||||||
|
dd идентификатор коммита, например краткий git-хэш в бинарном виде
|
||||||
|
dw зарезервировано
|
||||||
|
dw количество коммитов с момента последнего релиза
|
||||||
|
Пример структуры для ядра Kolibri 0.7.7.0+:
|
||||||
db 0,7,7,0
|
db 0,7,7,0
|
||||||
db 0
|
db 0
|
||||||
dd 1675
|
db 0
|
||||||
|
dw 40
|
||||||
|
dd 0xf26d5b28
|
||||||
|
dw 0
|
||||||
|
dw 1675
|
||||||
|
|
||||||
---------------------- Константы для регистров: ----------------------
|
---------------------- Константы для регистров: ----------------------
|
||||||
eax - SF_SYSTEM (18)
|
eax - SF_SYSTEM (18)
|
||||||
|
@@ -962,13 +962,21 @@ Remarks:
|
|||||||
16 byte buffer for the future compatibility, in the future
|
16 byte buffer for the future compatibility, in the future
|
||||||
some fields can be added.
|
some fields can be added.
|
||||||
Structure of the buffer:
|
Structure of the buffer:
|
||||||
db a,b,c,d for version a.b.c.d
|
db a,b,c,d for os version a.b.c.d
|
||||||
db 0: reserved
|
db debug tag, 0 for release, any ASCII char otherwise
|
||||||
dd REV - kernel SVN revision number
|
db kernel ABI minor
|
||||||
For Kolibri 0.7.7.0+ kernel:
|
dw kernel ABI major
|
||||||
|
dd commit id, e.g. short git hash in binary
|
||||||
|
dw reserved
|
||||||
|
dw the number of commits since the latest release
|
||||||
|
For Kolibri 0.7.7.0+ the structure is like this:
|
||||||
db 0,7,7,0
|
db 0,7,7,0
|
||||||
db 0
|
db 0
|
||||||
dd 1675
|
db 0
|
||||||
|
dw 40
|
||||||
|
dd 0xf26d5b28
|
||||||
|
dw 0
|
||||||
|
dw 1675
|
||||||
|
|
||||||
---------------------- Constants for registers: ----------------------
|
---------------------- Constants for registers: ----------------------
|
||||||
eax - SF_SYSTEM (18)
|
eax - SF_SYSTEM (18)
|
||||||
|
@@ -30,6 +30,8 @@ format binary as "mnt"
|
|||||||
include 'macros.inc'
|
include 'macros.inc'
|
||||||
include 'struct.inc'
|
include 'struct.inc'
|
||||||
|
|
||||||
|
ABI_MAJOR = 0x28
|
||||||
|
ABI_MINOR = 0
|
||||||
|
|
||||||
USE_COM_IRQ = 1 ; make irq 3 and irq 4 available for PCI devices
|
USE_COM_IRQ = 1 ; make irq 3 and irq 4 available for PCI devices
|
||||||
VESA_1_2_VIDEO = 0 ; enable vesa 1.2 bank switch functions
|
VESA_1_2_VIDEO = 0 ; enable vesa 1.2 bank switch functions
|
||||||
@@ -711,10 +713,33 @@ end if
|
|||||||
|
|
||||||
|
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; show SVN version of kernel on the message board
|
; show OS version, offset, debug tag and commit id on the message board
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
mov eax, [version_inf.rev]
|
mov eax, version_inf.osrel
|
||||||
DEBUGF 1, "K : kernel SVN r%d\n", eax
|
DEBUGF 1, "K : OS version: %u.%u.%u.%u", [eax+0]:1, [eax+1]:1, \
|
||||||
|
[eax+2]:1, [eax+3]:1, ecx
|
||||||
|
movzx ecx, [version_inf.offset]
|
||||||
|
jecxz @f
|
||||||
|
DEBUGF 1, "+%u", ecx
|
||||||
|
@@:
|
||||||
|
movzx ecx, [version_inf.dbgtag]
|
||||||
|
jecxz @f
|
||||||
|
push ecx
|
||||||
|
mov ecx, esp
|
||||||
|
DEBUGF 1, "-%s", ecx
|
||||||
|
pop ecx
|
||||||
|
@@:
|
||||||
|
DEBUGF 1, "\n"
|
||||||
|
mov ecx, [version_inf.cmtid]
|
||||||
|
jecxz @f
|
||||||
|
DEBUGF 1, "K : Commit ID: %x\n", ecx
|
||||||
|
@@:
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
; show kernel ABI
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
movzx eax, [version_inf.abimaj]
|
||||||
|
movzx ecx, [version_inf.abimin]
|
||||||
|
DEBUGF 1, "K : Kernel ABI: %u.%u\n", eax, ecx
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
; show CPU count on the message board
|
; show CPU count on the message board
|
||||||
;-----------------------------------------------------------------------------
|
;-----------------------------------------------------------------------------
|
||||||
@@ -2102,12 +2127,12 @@ sysfn_getdiskinfo: ; 18.11 = get disk info table
|
|||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getversion: ; 18.13 = get kernel ID and version
|
sysfn_getversion: ; 18.13 = get kernel ID and version
|
||||||
; if given memory address belongs to kernel then error
|
; if given memory address belongs to kernel then error
|
||||||
stdcall is_region_userspace, ecx, version_inf.size
|
stdcall is_region_userspace, ecx, sizeof.kernel_version
|
||||||
jnz .addr_error
|
jnz .addr_error
|
||||||
|
|
||||||
mov edi, ecx
|
mov edi, ecx
|
||||||
mov esi, version_inf
|
mov esi, version_inf
|
||||||
mov ecx, version_inf.size
|
mov ecx, sizeof.kernel_version
|
||||||
rep movsb
|
rep movsb
|
||||||
ret
|
ret
|
||||||
.addr_error: ; if given memory address is illegal
|
.addr_error: ; if given memory address is illegal
|
||||||
@@ -2287,11 +2312,18 @@ sound_flag db 0
|
|||||||
endg
|
endg
|
||||||
|
|
||||||
iglobal
|
iglobal
|
||||||
version_inf:
|
if ~ definite BUILD_DBGTAG
|
||||||
db 0,7,7,0 ; FIXME: Get distribution version from git tag
|
BUILD_DBGTAG = 0
|
||||||
db 0
|
end if
|
||||||
.rev dd __REV__
|
if ~ definite BUILD_CMTID
|
||||||
.size = $ - version_inf
|
BUILD_CMTID = 0
|
||||||
|
end if
|
||||||
|
if ~ definite BUILD_OFFSET
|
||||||
|
BUILD_OFFSET = 0
|
||||||
|
end if
|
||||||
|
align 4
|
||||||
|
version_inf kernel_version <0,7,7,0>, BUILD_DBGTAG, ABI_MINOR, ABI_MAJOR, \
|
||||||
|
BUILD_CMTID, 0, BUILD_OFFSET
|
||||||
endg
|
endg
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
@@ -4457,8 +4489,6 @@ end if
|
|||||||
|
|
||||||
include "data32.inc"
|
include "data32.inc"
|
||||||
|
|
||||||
__REV__ = __REV
|
|
||||||
|
|
||||||
if ~ lang eq es_ES
|
if ~ lang eq es_ES
|
||||||
diff16 "end of kernel code",0,$
|
diff16 "end of kernel code",0,$
|
||||||
end if
|
end if
|
||||||
|
@@ -5,16 +5,6 @@
|
|||||||
;; ;;
|
;; ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
__REV = 0
|
|
||||||
|
|
||||||
macro $Revision a {
|
|
||||||
match =: Num =$,a \{
|
|
||||||
if __REV < Num
|
|
||||||
__REV = Num
|
|
||||||
end if
|
|
||||||
\}
|
|
||||||
}
|
|
||||||
|
|
||||||
;// mike.dld, 2006-29-01 [
|
;// mike.dld, 2006-29-01 [
|
||||||
|
|
||||||
; macros definition
|
; macros definition
|
||||||
|
@@ -668,6 +668,8 @@ socket_accept:
|
|||||||
|
|
||||||
DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_accept: socknum=%u sockaddr=%x length=%u\n", ecx, edx, esi
|
DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_accept: socknum=%u sockaddr=%x length=%u\n", ecx, edx, esi
|
||||||
|
|
||||||
|
push edx esi
|
||||||
|
|
||||||
call socket_num_to_ptr
|
call socket_num_to_ptr
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz .invalid
|
jz .invalid
|
||||||
@@ -696,6 +698,24 @@ socket_accept:
|
|||||||
mov ebx, [ebx + APPDATA.tid]
|
mov ebx, [ebx + APPDATA.tid]
|
||||||
mov [eax + SOCKET.TID], ebx
|
mov [eax + SOCKET.TID], ebx
|
||||||
|
|
||||||
|
pop esi edx
|
||||||
|
|
||||||
|
test edx, edx
|
||||||
|
jz .skip_sockaddr
|
||||||
|
|
||||||
|
mov word[edx], 0 ; unknown domain
|
||||||
|
cmp esi, 8 ; domain + port + ipv4
|
||||||
|
jb .skip_sockaddr
|
||||||
|
|
||||||
|
mov word[edx], AF_INET4
|
||||||
|
mov esi, edx
|
||||||
|
mov edx, [eax + IP_SOCKET.RemoteIP]
|
||||||
|
mov [esi + sockaddr.ip], edx
|
||||||
|
|
||||||
|
mov dx, [eax + TCP_SOCKET.RemotePort]
|
||||||
|
mov [esi + sockaddr.port], dx
|
||||||
|
|
||||||
|
.skip_sockaddr:
|
||||||
; Return socket number to caller
|
; Return socket number to caller
|
||||||
mov eax, [eax + SOCKET.Number]
|
mov eax, [eax + SOCKET.Number]
|
||||||
mov [esp + SYSCALL_STACK.eax], eax
|
mov [esp + SYSCALL_STACK.eax], eax
|
||||||
@@ -711,16 +731,19 @@ socket_accept:
|
|||||||
.wouldblock:
|
.wouldblock:
|
||||||
mov dword[esp + SYSCALL_STACK.ebx], EWOULDBLOCK
|
mov dword[esp + SYSCALL_STACK.ebx], EWOULDBLOCK
|
||||||
mov dword[esp + SYSCALL_STACK.eax], -1
|
mov dword[esp + SYSCALL_STACK.eax], -1
|
||||||
|
pop esi edx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.invalid:
|
.invalid:
|
||||||
mov dword[esp + SYSCALL_STACK.ebx], EINVAL
|
mov dword[esp + SYSCALL_STACK.ebx], EINVAL
|
||||||
mov dword[esp + SYSCALL_STACK.eax], -1
|
mov dword[esp + SYSCALL_STACK.eax], -1
|
||||||
|
pop esi edx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.notsupp:
|
.notsupp:
|
||||||
mov dword[esp + SYSCALL_STACK.ebx], EOPNOTSUPP
|
mov dword[esp + SYSCALL_STACK.ebx], EOPNOTSUPP
|
||||||
mov dword[esp + SYSCALL_STACK.eax], -1
|
mov dword[esp + SYSCALL_STACK.eax], -1
|
||||||
|
pop esi edx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;-----------------------------------------------------------------;
|
;-----------------------------------------------------------------;
|
||||||
|
2
programs/bcc32/games/blocks/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||||
|
tup.rule("block.asm", "fasm -m 65636 %f %o " .. tup.getconfig("KPACK_CMD"), "block.bin")
|
229
programs/bcc32/games/blocks/models/model_8911_bird.bjs
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=16711680;
|
||||||
|
const m2=16776960;
|
||||||
|
const m3=655615;
|
||||||
|
const m4=65315;
|
||||||
|
const m5=16777215;
|
||||||
|
const m6=16756655;
|
||||||
|
const m7=16776367;
|
||||||
|
const m8=0;
|
||||||
|
const m9=65498;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b2x3x1', m1, 0, 4,-20, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4,-12, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, -4, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, 4, 3, 0,0,90],
|
||||||
|
['b2x3x1', m1, 0, 4, 12, 3, 0,0,90],
|
||||||
|
['t2x3x1', m1, 0, 0, 20, 3, 0,0,90],
|
||||||
|
['b1x1x1', m1, 0, 0, 28, 3, 0,0,0],
|
||||||
|
['b1x1x1', m1, 0, -8,-16, 3, 0,0,0],
|
||||||
|
['b1x1x1', m1, 0, 8,-16, 3, 0,0,0],
|
||||||
|
['b2x4x1', m1, 0,-12,-12, 3, 0,0,0],
|
||||||
|
['b2x4x1', m1, 0, 8,-12, 3, 0,0,0],
|
||||||
|
['l2x2x1', m1, 0, -8, 4, 3, 0,0,90],
|
||||||
|
['l2x2x1', m1, 0, 8, 4, 3, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, 0, 20, 6, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, -4, 16, 6, 0,0,0],
|
||||||
|
['b1x6x1', m1, 1, 4, 16, 6, 0,0,0],
|
||||||
|
['b1x10x1', m1, 1, 0,-24, 6, 0,0,0],
|
||||||
|
['b2x8x1', m1, 1, -8,-16, 6, 0,0,0],
|
||||||
|
['b2x8x1', m1, 1, 4,-16, 6, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1,-16, -8, 6, 0,0,0],
|
||||||
|
['b2x3x1', m1, 1, 12, -8, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 1, -4,-20, 6, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 1,-12,-12, 6, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 1,-12, 4, 6, 0,0,90],
|
||||||
|
['l2x2x1', m1, 1, 12, 4, 6, 0,0,0],
|
||||||
|
['l2x2x1', m1, 1, 12,-12, 6, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 1, 4,-20, 6, 0,0,-90],
|
||||||
|
['b2x3x1', m1, 2, 4,-24, 9, 0,0,90],
|
||||||
|
['b1x3x1', m1, 2, -8,-24, 9, 0,0,0],
|
||||||
|
['b1x3x1', m1, 2, 8,-24, 9, 0,0,0],
|
||||||
|
['b1x4x1', m1, 2,-12,-20, 9, 0,0,0],
|
||||||
|
['b1x4x1', m1, 2, 12,-20, 9, 0,0,0],
|
||||||
|
['b1x6x1', m1, 2,-16,-16, 9, 0,0,0],
|
||||||
|
['b1x6x1', m1, 2, 16,-16, 9, 0,0,0],
|
||||||
|
['t2x3x1', m1, 2,-12, 8, 9, 0,0,90],
|
||||||
|
['t2x3x1', m1, 2, 12, 8, 9, 0,0,90],
|
||||||
|
['b2x4x1', m1, 2, 4, 12, 9, 0,0,90],
|
||||||
|
['b1x2x1', m1, 2, 8, 12, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 2, 4, 20, 9, 0,0,90],
|
||||||
|
['b1x3x1', m3, 2, 4, 24, 9, 0,0,90],
|
||||||
|
['t2x3x1', m3, 2, 0, 28, 9, 0,0,90],
|
||||||
|
['b2x3x1', m1, 3, 0,-28, 12, 0,0,90],
|
||||||
|
['b2x2x1', m1, 3, 4,-28, 12, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3,-12,-20, 12, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 3, 12,-20, 12, 0,0,-90],
|
||||||
|
['b2x4x1', m1, 3,-16,-16, 12, 0,0,0],
|
||||||
|
['b2x4x1', m1, 3, 12,-16, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3,-16, 0, 12, 0,0,0],
|
||||||
|
['b1x3x1', m1, 3, 16, 0, 12, 0,0,0],
|
||||||
|
['l2x2x1', m1, 3,-12, 12, 12, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 3, 12, 12, 12, 0,0,180],
|
||||||
|
['b1x2x1', m2, 3, -4, 16, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 8, 16, 12, 0,0,90],
|
||||||
|
['t2x3x1', m3, 3, 0, 20, 12, 0,0,90],
|
||||||
|
['b1x3x1', m1, 4, 4,-28, 15, 0,0,90],
|
||||||
|
['l2x2x1', m1, 4, -8,-24, 15, 0,0,180],
|
||||||
|
['l2x2x1', m1, 4, 8,-24, 15, 0,0,-90],
|
||||||
|
['b1x2x1', m1, 4,-12,-20, 15, 0,0,90],
|
||||||
|
['b1x2x1', m1, 4, 16,-20, 15, 0,0,90],
|
||||||
|
['c1x2x1', m4, 4,-16,-16, 15, 0,0,90],
|
||||||
|
['c1x2x1', m4, 4, 20,-16, 15, 0,0,90],
|
||||||
|
['b1x4x1', m1, 4,-16,-12, 15, 0,0,0],
|
||||||
|
['b1x4x1', m1, 4, 16,-12, 15, 0,0,0],
|
||||||
|
['l2x2x1', m1, 4,-12, 4, 15, 0,0,90],
|
||||||
|
['l2x2x1', m1, 4, 12, 4, 15, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4,-12, 12, 15, 0,0,0],
|
||||||
|
['b1x1x1', m1, 4, 12, 12, 15, 0,0,0],
|
||||||
|
['l2x2x1', m2, 4, -4, 12, 15, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4, 4, 12, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 4, 0, 16, 15, 0,0,0],
|
||||||
|
['b1x6x1', m1, 5,-16,-20, 18, 0,0,0],
|
||||||
|
['b1x6x1', m1, 5, 16,-20, 18, 0,0,0],
|
||||||
|
['b1x3x1', m1, 5, -8, 4, 18, 0,0,90],
|
||||||
|
['b1x3x1', m1, 5, 16, 4, 18, 0,0,90],
|
||||||
|
['l2x2x1', m1, 5, -8, 12, 18, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 5, 8, 12, 18, 0,0,-180],
|
||||||
|
['b1x3x1', m2, 5, 4, 16, 18, 0,0,90],
|
||||||
|
['b1x2x1', m1, 5,-12,-24, 18, 0,0,0],
|
||||||
|
['b1x2x1', m1, 5, 12,-24, 18, 0,0,0],
|
||||||
|
['b2x3x1', m1, 5, 0,-28, 18, 0,0,90],
|
||||||
|
['b2x2x1', m1, 5, 4,-28, 18, 0,0,0],
|
||||||
|
['t2x3x1', m1, 6, 0,-28, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, -8,-24, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6,-16,-20, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6, 8,-24, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, 16,-20, 21, 0,0,90],
|
||||||
|
['b1x3x1', m1, 6,-16,-12, 21, 0,0,0],
|
||||||
|
['b1x3x1', m1, 6, 16,-12, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6,-12, 0, 21, 0,0,90],
|
||||||
|
['l2x2x1', m1, 6, -8, 8, 21, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 6, 12, 0, 21, 0,0,0],
|
||||||
|
['l2x2x1', m1, 6, 8, 8, 21, 0,0,-180],
|
||||||
|
['b1x3x1', m1, 6, -4, 12, 21, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 7, -8, 8, 24, 0,0,0],
|
||||||
|
['b2x3x1', m1, 7, -4, 12, 24, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 7, 8, 8, 24, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7,-12, 4, 24, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 7, 12, 4, 24, 0,0,-180],
|
||||||
|
['b1x3x1', m1, 7,-16, 0, 24, 0,0,180],
|
||||||
|
['b1x3x1', m1, 7, 16, 0, 24, 0,0,180],
|
||||||
|
['l2x2x1', m1, 7,-16,-16, 24, 0,0,0],
|
||||||
|
['l2x2x1', m1, 7, 16,-16, 24, 0,0,90],
|
||||||
|
['l2x2x1', m1, 7, -8,-20, 24, 0,0,180],
|
||||||
|
['l2x2x1', m1, 7, 8,-20, 24, 0,0,-90],
|
||||||
|
['b1x3x1', m3, 7, 4,-24, 24, 0,0,90],
|
||||||
|
['b2x2x1', m5, 8, -8,-24, 27, 0,0,0],
|
||||||
|
['b2x3x1', m5, 8, 8,-24, 27, 0,0,90],
|
||||||
|
['b1x3x1', m1, 8,-12,-24, 27, 0,0,0],
|
||||||
|
['b1x3x1', m1, 8, 12,-24, 27, 0,0,0],
|
||||||
|
['b1x4x1', m1, 8,-16,-20, 27, 0,0,0],
|
||||||
|
['b1x4x1', m1, 8, 16,-20, 27, 0,0,0],
|
||||||
|
['l2x2x1', m1, 8,-16, 0, 27, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 8, 16, 0, 27, 0,0,-180],
|
||||||
|
['l2x2x1', m1, 8, 8, 4, 27, 0,0,0],
|
||||||
|
['b2x4x1', m1, 8, 4, 4, 27, 0,0,90],
|
||||||
|
['b1x1x1', m1, 8,-12, 4, 27, 0,0,0],
|
||||||
|
['r1x1x1', m5, 9,-16,-20, 30, 0,0,0],
|
||||||
|
['r1x1x1', m5, 9, 16,-20, 30, 0,0,0],
|
||||||
|
['b1x2x1', m5, 9, -8,-20, 30, 0,0,90],
|
||||||
|
['b1x2x1', m5, 9, 12,-20, 30, 0,0,90],
|
||||||
|
['t2x3x1', m5, 9, 0,-20, 30, 0,0,-90],
|
||||||
|
['r1x1x1', m6, 9,-12,-24, 30, 0,0,0],
|
||||||
|
['r1x1x1', m6, 9, 12,-24, 30, 0,0,0],
|
||||||
|
['r1x2x1', m7, 9, -4,-28, 30, 0,0,0],
|
||||||
|
['r1x2x1', m7, 9, 4,-28, 30, 0,0,0],
|
||||||
|
['b1x4x1', m1, 9,-16,-16, 30, 0,0,0],
|
||||||
|
['b1x4x1', m1, 9, 16,-16, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 9,-12, 0, 30, 0,0,90],
|
||||||
|
['l2x2x1', m1, 9, 12, 0, 30, 0,0,0],
|
||||||
|
['l2x2x1', m1, 9, 8, 8, 30, 0,0,-180],
|
||||||
|
['b2x3x1', m1, 9, 0, 4, 30, 0,0,90],
|
||||||
|
['l2x2x1', m5, 10, -4,-20, 33, 0,0,-180],
|
||||||
|
['l2x2x1', m5, 10,-12,-16, 33, 0,0,-180],
|
||||||
|
['l2x2x1', m5, 10, 4,-20, 33, 0,0,-90],
|
||||||
|
['l2x2x1', m5, 10, 12,-16, 33, 0,0,-90],
|
||||||
|
['a1x2x2', m7, 10, 0,-24, 30, 0,0,-180],
|
||||||
|
['r1x2x1', m7, 10, 0,-24, 33, 0,0,0],
|
||||||
|
['b1x2x1', m1, 10,-16,-12, 33, 0,0,0],
|
||||||
|
['l2x2x1', m1, 10,-16, 0, 33, 0,0,-90],
|
||||||
|
['b1x1x1', m1, 10,-12, 4, 33, 0,0,0],
|
||||||
|
['b2x4x1', m1, 10, 4, 4, 33, 0,0,90],
|
||||||
|
['l2x2x1', m1, 10, 8, 4, 33, 0,0,0],
|
||||||
|
['b2x4x1', m1, 10, 12,-12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m1, 11, 0,-24, 36, 0,0,0],
|
||||||
|
['b1x1x1', m5, 11, -4,-24, 36, 0,0,0],
|
||||||
|
['b1x1x1', m5, 11, 4,-24, 36, 0,0,0],
|
||||||
|
['b1x1x3', m8, 11, -8,-24, 30, 0,0,0],
|
||||||
|
['b1x1x3', m8, 11, 8,-24, 30, 0,0,0],
|
||||||
|
['l2x2x1', m5, 11,-12,-20, 36, 0,0,0],
|
||||||
|
['l2x2x1', m5, 11, 12,-20, 36, 0,0,90],
|
||||||
|
['r1x1x1', m5, 11,-16,-16, 36, 0,0,90],
|
||||||
|
['r1x1x1', m5, 11, 16,-16, 36, 0,0,90],
|
||||||
|
['b1x4x1', m1, 11,-16,-12, 36, 0,0,0],
|
||||||
|
['b2x4x1', m1, 11, 12,-12, 36, 0,0,0],
|
||||||
|
['b2x3x1', m1, 11, 4, 0, 36, 0,0,0],
|
||||||
|
['l2x2x1', m1, 11, -8, 0, 36, 0,0,90],
|
||||||
|
['b1x3x1', m1, 11, 0, 8, 36, 0,0,90],
|
||||||
|
['b1x3x1', m1, 12, 4,-24, 39, 0,0,90],
|
||||||
|
['r1x1x1', m5, 12, -8,-24, 39, 0,0,0],
|
||||||
|
['r1x1x1', m5, 12, 8,-24, 39, 0,0,0],
|
||||||
|
['b1x1x1', m5, 12,-12,-20, 39, 0,0,0],
|
||||||
|
['b1x6x1', m5, 12, 12,-20, 39, 0,0,90],
|
||||||
|
['b1x1x1', m1, 12,-12,-16, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12,-16,-12, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12,-12, -4, 39, 0,0,90],
|
||||||
|
['b1x1x1', m1, 12, -8, 0, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, -4, 4, 39, 0,0,90],
|
||||||
|
['l2x2x1', m1, 12, 4, 8, 39, 0,0,-180],
|
||||||
|
['b1x1x1', m1, 12, 8, 4, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12, 0, 39, 0,0,-180],
|
||||||
|
['b1x2x1', m1, 12, 16, -8, 39, 0,0,0],
|
||||||
|
['l2x2x1', m1, 12, 12,-12, 39, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 13, 4,-20, 42, 0,0,-90],
|
||||||
|
['l2x2x1', m1, 13, -4,-24, 42, 0,0,0],
|
||||||
|
['b2x6x1', m1, 13,-12,-20, 42, 0,0,0],
|
||||||
|
['b1x3x1', m1, 13, 0, 4, 42, 0,0,90],
|
||||||
|
['b2x2x1', m1, 13, 4, 0, 42, 0,0,0],
|
||||||
|
['b1x6x1', m1, 13, 12,-20, 42, 0,0,0],
|
||||||
|
['b1x4x1', m1, 14,-12,-16, 45, 0,0,0],
|
||||||
|
['b2x4x1', m1, 14, 4,-20, 45, 0,0,90],
|
||||||
|
['b2x6x1', m1, 14, 12,-12, 45, 0,0,90],
|
||||||
|
['b2x4x1', m1, 14, 4, -4, 45, 0,0,90],
|
||||||
|
['b1x3x1', m1, 14, 4, 4, 45, 0,0,90],
|
||||||
|
['l2x2x1', m1, 14, 8, -4, 45, 0,0,0],
|
||||||
|
['l2x2x1', m1, 14, 8,-16, 45, 0,0,-90],
|
||||||
|
['b2x4x1', m1, 15, -4,-16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m1, 15, -8,-12, 48, 0,0,0],
|
||||||
|
['b1x3x1', m1, 15, 4, 0, 48, 0,0,90],
|
||||||
|
['b2x2x1', m1, 15, 4, -8, 48, 0,0,0],
|
||||||
|
['l2x2x1', m1, 15, 4,-12, 48, 0,0,-90],
|
||||||
|
['b1x3x1', m2, 16, 8,-12, 0, 0,0,0],
|
||||||
|
['b1x3x1', m2, 16, -8,-12, 0, 0,0,0],
|
||||||
|
['c1x2x1', m9, 17, 20,-16, 12, 0,0,0],
|
||||||
|
['b1x6x1', m4, 17, 0, 8, 0, 0,0,0, 1],
|
||||||
|
['b1x6x1', m9, 17, 0, 4, -3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m4, 18, 0, 4, 3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 16, 3, 0,0,0, 1],
|
||||||
|
['c1x2x1', m4, 18, 0, 0, 6, 0,0,0, 1],
|
||||||
|
['b1x1x1', m4, 18, 0, 8, 6, 0,0,0, 1],
|
||||||
|
['b1x2x1', m2, 18, 0, 12, 6, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 4, 9, 0,0,0, 1],
|
||||||
|
['c1x2x1', m9, 17, -20,-16, 12, 0,0,0],
|
||||||
|
['b1x6x1', m4, 17, 0, 8, 0, 0,0,0, 1],
|
||||||
|
['b1x6x1', m9, 17, 0, 4, -3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m4, 18, 0, 4, 3, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 16, 3, 0,0,0, 1],
|
||||||
|
['c1x2x1', m4, 18, 0, 0, 6, 0,0,0, 1],
|
||||||
|
['b1x1x1', m4, 18, 0, 8, 6, 0,0,0, 1],
|
||||||
|
['b1x2x1', m2, 18, 0, 12, 6, 0,0,0, 1],
|
||||||
|
['b1x3x1', m2, 18, 0, 4, 9, 0,0,0, 1],
|
||||||
|
];
|
||||||
|
|
||||||
|
model_animat=[
|
||||||
|
[192,'rotation','z','Left', -1.570796327, 0, 0.017453293],
|
||||||
|
[201,'rotation','z','Right', 0, 1.570796327, 0.017453293],
|
||||||
|
];
|
@@ -0,0 +1,531 @@
|
|||||||
|
// block name, color, step, coord: x,y,z, rotation: x,y,z
|
||||||
|
|
||||||
|
const m1=32768;
|
||||||
|
const m2=9474192;
|
||||||
|
const m3=16777215;
|
||||||
|
const m4=2164260863;
|
||||||
|
const m5=655615;
|
||||||
|
const m6=255;
|
||||||
|
const m7=16776960;
|
||||||
|
const m8=10824234;
|
||||||
|
const m9=16384;
|
||||||
|
const m10=0xc97e3b;
|
||||||
|
|
||||||
|
model_list=[
|
||||||
|
['b2x4x1', m2, 0,-28, -4, 6, 0,0,90],
|
||||||
|
['b2x3x1', m2, 0,-40, 4, 6, 0,0,0],
|
||||||
|
['b2x3x1', m2, 0,-32, 8, 6, 0,0,0],
|
||||||
|
['b2x6x1', m2, 0, -4, 8, 6, 0,0,90],
|
||||||
|
['b1x3x1', m2, 0, -4, 4, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 0, -4, -4, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 0, -8, -8, 6, 0,0,90],
|
||||||
|
['b2x3x1', m2, 0,-24, -8, 6, 0,0,0],
|
||||||
|
['b2x4x1', m2, 1,-12, -8, 9, 0,0,0],
|
||||||
|
['b2x2x1', m2, 1,-20, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 1,-20, -8, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 1,-24, -4, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 1,-40, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 1,-40, 8, 9, 0,0,0],
|
||||||
|
['b2x4x1', m2, 1,-24, 8, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 1,-28, 16, 9, 0,0,90],
|
||||||
|
['l2x2x1', m2, 2, 0,-12, 6, 0,0,-90],
|
||||||
|
['l2x2x1', m2, 2, 8,-12, 6, 0,0,-90],
|
||||||
|
['b2x4x1', m2, 2, 12, -8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 0, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 12, 16, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 16, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 8, 6, 0,0,90],
|
||||||
|
['b2x4x1', m2, 2, 28, 0, 6, 0,0,90],
|
||||||
|
['b1x4x1', m2, 2, 28, -4, 6, 0,0,90],
|
||||||
|
['b1x2x1', m2, 2, 24, -8, 6, 0,0,90],
|
||||||
|
['b2x2x1', m3, 3, 20, 16, 9, 0,0,0],
|
||||||
|
['b2x2x1', m2, 3, 12, 16, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 3, 20, 12, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 20, 4, 9, 0,0,0],
|
||||||
|
['b1x3x1', m2, 3, 20, -8, 9, 0,0,0],
|
||||||
|
['l2x2x1', m2, 3, 24, -4, 9, 0,0,-90],
|
||||||
|
['b2x4x1', m2, 3, 12, -4, 9, 0,0,0],
|
||||||
|
['b2x6x1', m2, 3, 4, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m2, 3, 8, 20, 9, 0,0,90],
|
||||||
|
['b1x2x1', m2, 3, 0, 16, 9, 0,0,0],
|
||||||
|
['b2x6x1', m2, 3, 0, 8, 9, 0,0,90],
|
||||||
|
['b2x3x1', m2, 3, -4, -4, 9, 0,0,0],
|
||||||
|
['b2x4x1', m2, 3, 12,-12, 9, 0,0,90],
|
||||||
|
['b1x1x1', m2, 3, 8,-16, 9, 0,0,0],
|
||||||
|
['b1x1x1', m2, 3, 0,-16, 9, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4,-28, -4, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4,-40, 0, 3, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4,-24, 12, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4,-28, 16, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4, -8, 12, 3, 0,0,90],
|
||||||
|
['l2x2x1', m2, 4, 0, 12, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4, 12, 20, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 24, 20, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 28, 12, 3, 0,0,0],
|
||||||
|
['b1x3x1', m2, 4, 28, 0, 3, 0,0,0],
|
||||||
|
['b1x4x1', m2, 4, 28, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4, 24, -8, 3, 0,0,90],
|
||||||
|
['b1x3x1', m2, 4, 12,-12, 3, 0,0,0],
|
||||||
|
['l2x2x1', m2, 4, 8,-12, 3, 0,0,-180],
|
||||||
|
['b1x4x1', m2, 4, 0,-16, 3, 0,0,0],
|
||||||
|
['b1x2x1', m2, 4, -4, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4, -8, -8, 3, 0,0,90],
|
||||||
|
['b1x4x1', m2, 4,-12, -4, 3, 0,0,90],
|
||||||
|
['b1x2x1', m2, 4,-20, -8, 3, 0,0,90],
|
||||||
|
['b20x20x1', m1, 5,-40,-40, 0, 0,0,0],
|
||||||
|
['b1x4x1', m3, 6,-28, -4, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6,-40, 0, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6,-32, 4, 12, 0,0,0],
|
||||||
|
['b2x6x1', m2, 6,-24, -8, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, -4, 8, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6, -4, -4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 6, -8, -8, 12, 0,0,90],
|
||||||
|
['b1x3x1', m2, 6, 0, -8, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 0,-16, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 4,-12, 12, 0,0,0],
|
||||||
|
['b1x4x1', m2, 6, 8,-16, 12, 0,0,0],
|
||||||
|
['b1x4x1', m2, 6, 12,-12, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 20, -4, 12, 0,0,90],
|
||||||
|
['b1x2x1', m2, 6, 24, -8, 12, 0,0,90],
|
||||||
|
['b2x4x1', m2, 6, 16, 0, 12, 0,0,0],
|
||||||
|
['b1x2x1', m2, 6, 16, 16, 12, 0,0,0],
|
||||||
|
['b2x2x1', m3, 6, 20, 16, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, 8, 8, 12, 0,0,0],
|
||||||
|
['b2x4x1', m2, 6, 0, 8, 12, 0,0,0],
|
||||||
|
['b2x6x1', m3, 7, 24, 16, 15, 0,0,90],
|
||||||
|
['b1x2x1', m3, 7, 0, 16, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, 20, 0, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, 16, 12, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, 16, 4, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, 16, -4, 15, 0,0,90],
|
||||||
|
['b2x4x1', m2, 7, -4, 0, 15, 0,0,0],
|
||||||
|
['b1x4x1', m2, 7, -8, 12, 15, 0,0,90],
|
||||||
|
['b1x4x1', m3, 7,-24, 12, 15, 0,0,90],
|
||||||
|
['b1x3x1', m3, 7,-40, 4, 15, 0,0,0],
|
||||||
|
['l2x2x1', m3, 7,-40, -4, 15, 0,0,0],
|
||||||
|
['b1x4x1', m3, 7,-20, -4, 15, 0,0,90],
|
||||||
|
['l2x2x1', m2, 7,-12, -4, 15, 0,0,180],
|
||||||
|
['l2x2x1', m2, 7, -8, -4, 15, 0,0,-90],
|
||||||
|
['b1x4x1', m2, 7, 0,-16, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 4,-12, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 8,-16, 15, 0,0,0],
|
||||||
|
['b1x2x1', m2, 7, 12,-12, 15, 0,0,0],
|
||||||
|
['b1x1x1', m3, 8, 24, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 24, 20, 18, 0,0,0],
|
||||||
|
['b2x2x1', m3, 8, 16, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 12, 20, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 12, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, 8, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 4, 20, 18, 0,0,0],
|
||||||
|
['c1x1x1', m4, 8, 4, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, 0, 16, 18, 0,0,0],
|
||||||
|
['b1x2x1', m3, 8, -4, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-12, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-28, 12, 18, 0,0,90],
|
||||||
|
['b1x4x1', m3, 8,-40, -4, 18, 0,0,0],
|
||||||
|
['b1x4x1', m3, 8,-24, -4, 18, 0,0,90],
|
||||||
|
['b1x2x1', m3, 8,-16, -4, 18, 0,0,90],
|
||||||
|
['b2x2x1', m3, 8,-12, -8, 18, 0,0,0],
|
||||||
|
['b1x4x1', m3, 8, -4, -4, 18, 0,0,0],
|
||||||
|
['b2x4x1', m3, 8, 12,-12, 18, 0,0,90],
|
||||||
|
['b1x1x1', m3, 8, 0,-16, 18, 0,0,0],
|
||||||
|
['b1x1x1', m3, 8, 8,-16, 18, 0,0,0],
|
||||||
|
['b2x2x1', m3, 9, 20, 16, 21, 0,0,0],
|
||||||
|
['b1x2x1', m5, 9, 16, 16, 21, 0,0,0],
|
||||||
|
['b2x2x1', m3, 9, 8, 16, 21, 0,0,0],
|
||||||
|
['b2x2x1', m5, 9, 0, 16, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9, -4, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -8, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-12, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-16, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-20, 12, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-24, 12, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-28, 12, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9,-36, 12, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-40, 12, 21, 0,0,0],
|
||||||
|
['b2x3x1', m3, 9,-44, 0, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-40, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-36, -4, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9,-32, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9,-28, -4, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-20, -4, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9,-16, -4, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9,-12, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -8, -8, 21, 0,0,0],
|
||||||
|
['b1x2x1', m3, 9, -4, -4, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9, -4, 0, 21, 0,0,0],
|
||||||
|
['b1x1x1', m3, 9, -4, 4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, -4, 8, 21, 0,0,0],
|
||||||
|
['b2x4x1', m3, 9, 12,-12, 21, 0,0,90],
|
||||||
|
['c1x1x1', m4, 9, 0,-16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 9, 8,-16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 24, 20, 24, 0,0,0],
|
||||||
|
['l2x2x1', m3, 10, 20, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 12, 20, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 8, 20, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 8, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10, 12, 16, 24, 0,0,0],
|
||||||
|
['b1x4x1', m3, 10, -4, 0, 24, 0,0,0],
|
||||||
|
['b1x4x1', m3, 10, -8, 12, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-24, 12, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-40, 0, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 4, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 10,-44, 0, 24, 0,0,0],
|
||||||
|
['b1x2x1', m3, 10,-36, -4, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10,-20, -4, 24, 0,0,90],
|
||||||
|
['b1x4x1', m3, 10, -4, -4, 24, 0,0,90],
|
||||||
|
['b1x2x1', m3, 10, -8, -8, 24, 0,0,90],
|
||||||
|
['l2x2x1', m3, 10, 4, -8, 24, 0,0,180],
|
||||||
|
['b1x2x1', m5, 10, 0,-16, 24, 0,0,0],
|
||||||
|
['l2x2x1', m3, 10, 12, -8, 24, 0,0,180],
|
||||||
|
['b1x2x1', m5, 10, 8,-16, 24, 0,0,0],
|
||||||
|
['b2x2x1', m3, 11, 24, 16, 27, 0,0,90],
|
||||||
|
['b2x2x1', m5, 11, 8, 16, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11, -4, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -8, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-12, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-16, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-20, 12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-24, 12, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-28, 12, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11,-36, 12, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-40, 12, 27, 0,0,0],
|
||||||
|
['b2x3x1', m3, 11,-44, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-40, -4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-36, -4, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11,-32, -4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11,-28, -4, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-20, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11,-16, -4, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11,-12, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -8, -8, 27, 0,0,0],
|
||||||
|
['b1x2x1', m3, 11, -4, -4, 27, 0,0,90],
|
||||||
|
['c1x1x1', m4, 11, -4, 0, 27, 0,0,0],
|
||||||
|
['b1x1x1', m3, 11, -4, 4, 27, 0,0,0],
|
||||||
|
['c1x1x1', m4, 11, -4, 8, 27, 0,0,0],
|
||||||
|
['b1x2x1', m5, 11, 0,-12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m5, 11, 0,-16, 27, 0,0,0],
|
||||||
|
['f1x2x1', m5, 11, 4,-12, 27, 0,0,0],
|
||||||
|
['f1x2x1', m5, 11, 8,-12, 27, 0,0,0],
|
||||||
|
['c1x1x1', m5, 11, 8,-16, 27, 0,0,0],
|
||||||
|
['b1x2x1', m5, 11, 12,-12, 27, 0,0,0],
|
||||||
|
['b2x2x1', m3, 12, 20, 16, 30, 0,0,0],
|
||||||
|
['b1x4x1', m3, 12, -4, 0, 30, 0,0,0],
|
||||||
|
['b1x4x1', m3, 12, -8, 12, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-24, 12, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-40, 0, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 4, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 12,-44, 0, 30, 0,0,0],
|
||||||
|
['b1x2x1', m3, 12,-36, -4, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12,-20, -4, 30, 0,0,90],
|
||||||
|
['b1x4x1', m3, 12, -4, -4, 30, 0,0,90],
|
||||||
|
['b1x2x1', m3, 12, -8, -8, 30, 0,0,90],
|
||||||
|
['b1x2x1', m5, 12, 8,-10, 30, 0,0,90],
|
||||||
|
['b2x2x1', m3, 13, -4, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -8, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-12, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-16, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-20, 12, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-24, 12, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-28, 12, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13,-36, 12, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-40, 12, 33, 0,0,0],
|
||||||
|
['b2x3x1', m3, 13,-44, 0, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-40, -4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-36, -4, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13,-32, -4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13,-28, -4, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-20, -4, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13,-16, -4, 33, 0,0,0],
|
||||||
|
['b1x2x1', m3, 13,-12, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -8, -8, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13, -8, -4, 33, 0,0,90],
|
||||||
|
['c1x1x1', m4, 13, -4, 0, 33, 0,0,0],
|
||||||
|
['b1x1x1', m3, 13, -4, 4, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 13, -4, 8, 33, 0,0,0],
|
||||||
|
['b2x2x1', m3, 13, -4, -8, 33, 0,0,0],
|
||||||
|
['b2x4x1', m3, 13, 28, 16, 33, 0,0,90],
|
||||||
|
['b1x2x1', m3, 14, 24, 12, 33, 0,0,90],
|
||||||
|
['b1x2x1', m3, 14, 24, 24, 33, 0,0,90],
|
||||||
|
['b2x4x1', m6, 14, 20, 12, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, 28, 16, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, 16, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m4, 14, 0, 16, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, -4, 16, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, 0, 12, 36, 0,0,0],
|
||||||
|
['b1x4x1', m3, 14, -8, 12, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-24, 12, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-40, 0, 36, 0,0,0],
|
||||||
|
['b1x2x1', m3, 14,-36, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14,-20, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14, -4, -4, 36, 0,0,90],
|
||||||
|
['b1x4x1', m3, 14, -4, 0, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, 0, -4, 36, 0,0,0],
|
||||||
|
['c1x1x1', m4, 14, 0, -8, 36, 0,0,0],
|
||||||
|
['b1x1x1', m3, 14, -4, -8, 36, 0,0,0],
|
||||||
|
['b1x2x1', m6, 14, -8, -8, 36, 0,0,90],
|
||||||
|
['b2x2x1', m3, 15, -4, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -8, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-12, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-16, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-20, 12, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-24, 12, 39, 0,0,0],
|
||||||
|
['b1x2x1', m3, 15,-28, 12, 39, 0,0,90],
|
||||||
|
['c1x1x1', m4, 15,-36, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, 12, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, 4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-40, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-36, -4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-32, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-28, -4, 39, 0,0,0],
|
||||||
|
['b1x2x1', m3, 15,-20, -4, 39, 0,0,90],
|
||||||
|
['c1x1x1', m4, 15,-16, -4, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15,-12, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-40, 8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -4, 0, 39, 0,0,0],
|
||||||
|
['b1x1x1', m3, 15, -4, 4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -4, 8, 39, 0,0,0],
|
||||||
|
['b2x2x1', m3, 15, -4, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15,-40, 0, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 15, -8, -4, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 16, 0, 16, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, -4, 16, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, 0, 12, 42, 0,0,0],
|
||||||
|
['b1x4x1', m3, 16, -8, 12, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-24, 12, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-40, 0, 42, 0,0,0],
|
||||||
|
['b1x2x1', m3, 16,-36, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16,-20, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16, -4, -4, 42, 0,0,90],
|
||||||
|
['b1x4x1', m3, 16, -4, 0, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, 0, -4, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 16, 0, -8, 42, 0,0,0],
|
||||||
|
['b1x1x1', m3, 16, -4, -8, 42, 0,0,0],
|
||||||
|
['b2x2x1', m3, 17, -4, 12, 45, 0,0,0],
|
||||||
|
['b2x3x1', m6, 17, -8, 12, 45, 0,0,90],
|
||||||
|
['b2x2x1', m6, 17,-24, 12, 45, 0,0,0],
|
||||||
|
['b1x2x1', m6, 17,-28, 12, 45, 0,0,90],
|
||||||
|
['b2x2x1', m6, 17,-40, 12, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17,-40, 8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m4, 17,-40, 4, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17,-40, 0, 45, 0,0,0],
|
||||||
|
['b2x4x1', m6, 17,-28, -8, 45, 0,0,90],
|
||||||
|
['b1x2x1', m6, 17,-20, -4, 45, 0,0,90],
|
||||||
|
['b2x3x1', m6, 17, -8, -8, 45, 0,0,90],
|
||||||
|
['b2x2x1', m3, 17, -4, -8, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17, -4, 0, 45, 0,0,0],
|
||||||
|
['c1x1x1', m4, 17, -4, 4, 45, 0,0,0],
|
||||||
|
['b1x1x1', m3, 17, -4, 8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 18, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-24, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-20, -8, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-32, 16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m3, 18,-28, 16, 21, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-24, -8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-20, -8, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-32, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m4, 19,-28, 16, 24, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-24, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-20, -8, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-32, 16, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-28, 16, 27, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-24, -8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-20, -8, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-32, 16, 30, 0,0,0],
|
||||||
|
['c1x1x1', m3, 19,-28, 16, 30, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-24, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-20, -8, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-32, 16, 33, 0,0,0],
|
||||||
|
['c1x1x1', m4, 20,-28, 16, 33, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-24, -8, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-20, -8, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-32, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-28, 16, 36, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-24, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-20, -8, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-32, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 20,-28, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-24, -8, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-20, -8, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-32, 16, 42, 0,0,0],
|
||||||
|
['c1x1x1', m4, 21,-28, 16, 42, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-24, -8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-20, -8, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-32, 16, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-28, 16, 45, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-24, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-20, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-32, 16, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 21,-28, 16, 48, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 20, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 24, 16, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 24, 20, 39, 0,0,0],
|
||||||
|
['c1x1x1', m3, 22, 20, 20, 39, 0,0,0],
|
||||||
|
['b2x2x1', m3, 22, 20, 16, 42, 0,0,0],
|
||||||
|
['f1x2x1', m6, 22, 20, 16, 45, 0,0,0],
|
||||||
|
['f1x2x1', m6, 22, 24, 16, 45, 0,0,0],
|
||||||
|
['f1x2x1', m6, 23, 24, 18, 48, 0,0,90],
|
||||||
|
['c1x1x1', m6, 23, 0, 16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m6, 23, -4, 12, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23, -8, 16, 48, 0,0,0],
|
||||||
|
['b2x4x1', m6, 23,-16, 8, 48, 0,0,90],
|
||||||
|
['b1x3x1', m6, 23,-32, 12, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23,-40, 16, 48, 0,0,0],
|
||||||
|
['b1x3x1', m3, 23,-40, 0, 48, 0,0,0],
|
||||||
|
['b1x3x1', m6, 23,-32, -4, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23,-40, -8, 48, 0,0,0],
|
||||||
|
['b2x4x1', m6, 23,-16, -4, 48, 0,0,90],
|
||||||
|
['b1x3x1', m6, 23, -4, -4, 48, 0,0,90],
|
||||||
|
['b1x1x1', m3, 23, -8, -8, 48, 0,0,0],
|
||||||
|
['c1x1x1', m6, 23, 0, -8, 48, 0,0,0],
|
||||||
|
['b1x3x1', m3, 23, -4, 0, 48, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 22, 18, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 0, 16, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24, -8, 16, 51, 0,0,0],
|
||||||
|
['b2x6x1', m6, 24, -4, 8, 51, 0,0,90],
|
||||||
|
['b1x2x1', m6, 24,-28, 8, 51, 0,0,90],
|
||||||
|
['b2x2x1', m3, 24,-32, 12, 51, 0,0,0],
|
||||||
|
['b2x2x1', m6, 24,-40, 8, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24,-40, 16, 51, 0,0,0],
|
||||||
|
['b1x1x1', m3, 24,-40, 4, 51, 0,0,0],
|
||||||
|
['b2x4x1', m6, 24,-28, -4, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24,-40, -8, 51, 0,0,0],
|
||||||
|
['b1x2x1', m6, 24,-20, 0, 51, 0,0,90],
|
||||||
|
['b2x2x1', m3, 24,-24, -8, 51, 0,0,0],
|
||||||
|
['b2x4x1', m6, 24, -4, -4, 51, 0,0,90],
|
||||||
|
['c1x1x1', m6, 24, -8, -8, 51, 0,0,0],
|
||||||
|
['c1x1x1', m6, 24, 0, -8, 51, 0,0,0],
|
||||||
|
['b1x1x1', m3, 24, -4, 4, 51, 0,0,0],
|
||||||
|
['c1x1x1', m7, 25, 22, 18, 54, 0,0,0],
|
||||||
|
['b1x1x1', m3, 25, -4, 4, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25, -4, 8, 54, 0,0,90],
|
||||||
|
['b1x3x1', m5, 25, -4, 0, 54, 0,0,90],
|
||||||
|
['b2x3x1', m5, 25,-20, 0, 54, 0,0,0],
|
||||||
|
['b2x3x1', m5, 25,-28, 0, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25,-32, 8, 54, 0,0,90],
|
||||||
|
['b1x1x1', m3, 25,-40, 4, 54, 0,0,0],
|
||||||
|
['b1x3x1', m5, 25,-32, 0, 54, 0,0,90],
|
||||||
|
['c1x1x1', m3, 25,-32, 12, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-28, 12, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-28, 16, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-32, 16, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-24, -4, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-20, -4, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-20, -8, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 25,-24, -8, 54, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-32, 12, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-28, 12, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-28, 16, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-32, 16, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-24, -4, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-20, -4, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-20, -8, 57, 0,0,0],
|
||||||
|
['c1x1x1', m3, 26,-24, -8, 57, 0,0,0],
|
||||||
|
['f1x2x1', m6, 27,-20, -8, 60, 0,0,90],
|
||||||
|
['f1x2x1', m6, 27,-20, -4, 60, 0,0,90],
|
||||||
|
['f1x2x1', m6, 27,-22, -8, 63, 0,0,0],
|
||||||
|
['c1x1x1', m6, 27,-22, -6, 66, 0,0,0],
|
||||||
|
['c1x1x1', m7, 27,-22, -6, 69, 0,0,0],
|
||||||
|
['b2x2x1', m3, 28,-32, 12, 60, 0,0,0],
|
||||||
|
['b2x2x1', m5, 28,-32, 12, 63, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-32, 12, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-28, 12, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-28, 16, 66, 0,0,0],
|
||||||
|
['c1x1x1', m3, 28,-32, 16, 66, 0,0,0],
|
||||||
|
['b2x2x1', m3, 28,-32, 12, 69, 0,0,0],
|
||||||
|
['f1x2x1', m5, 29,-28, 12, 72, 0,0,90],
|
||||||
|
['f1x2x1', m5, 29,-28, 16, 72, 0,0,90],
|
||||||
|
['f1x2x1', m5, 29,-30, 12, 75, 0,0,0],
|
||||||
|
['c1x1x1', m5, 29,-30, 12, 78, 0,0,0],
|
||||||
|
['c1x1x1', m5, 29,-30, 12, 81, 0,0,0],
|
||||||
|
['c1x1x1', m7, 29,-30, 12, 84, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30, -8, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-16, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-24, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-32, 0, 57, 0,0,0],
|
||||||
|
['b2x3x1', m5, 30,-40, 0, 57, 0,0,0],
|
||||||
|
['b1x4x1', m5, 30, -4, 4, 60, 0,0,90],
|
||||||
|
['b1x2x1', m5, 30,-20, 4, 60, 0,0,90],
|
||||||
|
['b1x4x1', m5, 30,-28, 4, 60, 0,0,90],
|
||||||
|
['b1x3x1', m5, 31, -4, 4, 63, 0,0,90],
|
||||||
|
['b1x4x1', m5, 31,-16, 4, 63, 0,0,90],
|
||||||
|
['b1x3x1', m5, 31,-32, 4, 63, 0,0,90],
|
||||||
|
['c1x1x1', m7, 31, -4, 4, 66, 0,0,0],
|
||||||
|
['c1x1x1', m7, 31,-40, 4, 66, 0,0,0],
|
||||||
|
['c1x1x1', m8, 32,-32,-36, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 32, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 32, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 33,-12,-24, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 33, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 33, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 34, 16,-36, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 34, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 34, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 35, 32,-24, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 35, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 35, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 36,-20, 28, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 12, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 36, 0, 0, 15, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 36, 0, 0, 18, 0,0,0, 1],
|
||||||
|
['c1x1x1', m8, 37, 16, 32, 3, 0,0,0],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 3, 0,0,45, 1],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 6, 0,0,-45, 1],
|
||||||
|
['b1x2x1', m9, 37, 0, 0, 9, 0,0,45, 1],
|
||||||
|
['c1x1x1', m9, 37, 0, 0, 12, 0,0,0, 1],
|
||||||
|
['c1x1x1', m3, 38, 36, -4, 3, 0,0,0],
|
||||||
|
['b1x2x1', m10, 38, 36, 0, 3, 0,0,90],
|
||||||
|
['b1x2x1', m10, 38, 36, 12, 3, 0,0,90],
|
||||||
|
['c1x1x1', m3, 38, 36, 16, 3, 0,0,0],
|
||||||
|
['c1x1x1', m3, 39, 36, -4, 6, 0,0,0],
|
||||||
|
['b1x2x1', m10, 39, 36, 0, 6, 0,0,90],
|
||||||
|
['b1x2x1', m10, 39, 36, 12, 6, 0,0,90],
|
||||||
|
['c1x1x1', m3, 39, 36, 16, 6, 0,0,0],
|
||||||
|
['c1x1x1', m3, 40, 36, -4, 9, 0,0,0],
|
||||||
|
['b1x2x1', m10, 40, 36, 0, 9, 0,0,90],
|
||||||
|
['b1x2x1', m10, 40, 36, 12, 9, 0,0,90],
|
||||||
|
['c1x1x1', m3, 40, 36, 16, 9, 0,0,0],
|
||||||
|
['c1x1x1', m3, 41, 36, -4, 12, 0,0,0],
|
||||||
|
['b1x2x1', m10, 41, 36, 0, 12, 0,0,90],
|
||||||
|
['b1x2x1', m10, 41, 36, 12, 12, 0,0,90],
|
||||||
|
['c1x1x1', m3, 41, 36, 16, 12, 0,0,0],
|
||||||
|
['b2x2x1', m3, 41, 32, 4, 12, 0,0,0],
|
||||||
|
['c1x1x1', m3, 42, 36, -4, 15, 0,0,0],
|
||||||
|
['b2x4x1', m10, 42, 32, 0, 15, 0,0,0],
|
||||||
|
['c1x1x1', m3, 42, 36, 16, 15, 0,0,0],
|
||||||
|
['b1x1x1', m3, 43, 36, -4, 18, 0,0,0],
|
||||||
|
['b1x2x1', m6, 43, 36, 0, 18, 0,0,90],
|
||||||
|
['b1x2x1', m6, 43, 36, 12, 18, 0,0,90],
|
||||||
|
['b1x1x1', m3, 43, 36, 16, 18, 0,0,0],
|
||||||
|
['b2x2x1', m10, 43, 32, 4, 18, 0,0,0],
|
||||||
|
['c1x1x1', m6, 44, 36, -4, 21, 0,0,0],
|
||||||
|
['c1x1x1', m6, 44, 36, 16, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 36, 4, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 32, 4, 21, 0,0,0],
|
||||||
|
['f1x2x1', m6, 44, 36, 6, 24, 0,0,90],
|
||||||
|
];
|
@@ -692,6 +692,15 @@ struct TinyGLContext
|
|||||||
long int dx, dy, x, y;
|
long int dx, dy, x, y;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct GLUquadricObj
|
||||||
|
{
|
||||||
|
GLenum DrawStyle; // GLU_FILL, LINE, SILHOUETTE, or POINT
|
||||||
|
GLenum Orientation; // GLU_INSIDE or GLU_OUTSIDE
|
||||||
|
GLboolean TextureFlag; // Generate texture coords?
|
||||||
|
GLenum Normals; // GLU_NONE, GLU_FLAT, or GLU_SMOOTH
|
||||||
|
void (__stdcall* ErrorFunc)(GLenum err); // Error handler callback function
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// tinygl - import table
|
// tinygl - import table
|
||||||
//
|
//
|
||||||
@@ -748,7 +757,7 @@ void (__stdcall* glEdgeFlag)(int flag) = (void (__stdcall*)(int))&"glEdgeFlag";
|
|||||||
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode";
|
void (__stdcall* glMatrixMode)(int mode) = (void (__stdcall*)(int))&"glMatrixMode";
|
||||||
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf";
|
void (__stdcall* glLoadMatrixf)(const float* m) = (void (__stdcall*)(const float*))&"glLoadMatrixf";
|
||||||
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity";
|
void (__stdcall* glLoadIdentity)() = (void (__stdcall*)())&"glLoadIdentity";
|
||||||
//void (__stdcall* glMultMatrixf)(...) = (void (__stdcall*)(...))&"glMultMatrixf";
|
void (__stdcall* glMultMatrixf)(const GLfloat *m) = (void (__stdcall*)(const GLfloat*))&"glMultMatrixf";
|
||||||
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix";
|
void (__stdcall* glPushMatrix)() = (void (__stdcall*)())&"glPushMatrix";
|
||||||
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix";
|
void (__stdcall* glPopMatrix)() = (void (__stdcall*)())&"glPopMatrix";
|
||||||
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef";
|
void (__stdcall* glRotatef)(float angle, float x, float y, float z) = (void (__stdcall*)(float, float, float, float))&"glRotatef";
|
||||||
@@ -763,7 +772,7 @@ void (__stdcall* glEndList)() = (void (__stdcall*)())&"glEndList";
|
|||||||
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList";
|
void (__stdcall* glCallList)(unsigned int list) = (void (__stdcall*)(unsigned int))&"glCallList";
|
||||||
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear";
|
void (__stdcall* glClear)(int mask) = (void (__stdcall*)(int))&"glClear";
|
||||||
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor";
|
void (__stdcall* glClearColor)(float r, float g, float b, float a) = (void (__stdcall*)(float, float, float, float))&"glClearColor";
|
||||||
//void (__stdcall* glClearDepth)(...) = (void (__stdcall*)(...))&"glClearDepth";
|
void (__stdcall* glClearDepth)(double depth) = (void (__stdcall*)(double))&"glClearDepth";
|
||||||
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode";
|
void (__stdcall* glRenderMode)(int mode) = (void (__stdcall*)(int))&"glRenderMode";
|
||||||
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer";
|
//void (__stdcall* glSelectBuffer)(...) = (void (__stdcall*)(...))&"glSelectBuffer";
|
||||||
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames";
|
//void (__stdcall* glInitNames)(...) = (void (__stdcall*)(...))&"glInitNames";
|
||||||
@@ -799,18 +808,22 @@ void (__stdcall* glColorPointer)(GLint size, GLenum type, GLsizei stride, const
|
|||||||
void (__stdcall* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLenum, GLsizei, const GLvoid*))&"glNormalPointer";
|
void (__stdcall* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLenum, GLsizei, const GLvoid*))&"glNormalPointer";
|
||||||
void (__stdcall* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glTexCoordPointer";
|
void (__stdcall* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = (void (__stdcall*)(GLint, GLenum, GLsizei, const GLvoid*))&"glTexCoordPointer";
|
||||||
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset";
|
//void (__stdcall* glPolygonOffset)(...) = (void (__stdcall*)(...))&"glPolygonOffset";
|
||||||
//void (__stdcall* glOrtho)(...) = (void (__stdcall*)(...))&"glOrtho";
|
void (__stdcall* glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) = (void (__stdcall*)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble))&"glOrtho";
|
||||||
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug";
|
//void (__stdcall* glDebug)(...) = (void (__stdcall*)(...))&"glDebug";
|
||||||
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit";
|
//void (__stdcall* glInit)(...) = (void (__stdcall*)(...))&"glInit";
|
||||||
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose";
|
//void (__stdcall* glClose)(...) = (void (__stdcall*)(...))&"glClose";
|
||||||
//void (__stdcall* gluPerspective)(...) = (void (__stdcall*)(...))&"gluPerspective";
|
void (__stdcall* gluPerspective)(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) = (void (__stdcall*)(GLdouble, GLdouble, GLdouble, GLdouble))&"gluPerspective";
|
||||||
//void (__stdcall* gluNewQuadric)(...) = (void (__stdcall*)(...))&"gluNewQuadric";
|
GLUquadricObj* (__stdcall* gluNewQuadric)() = (GLUquadricObj* (__stdcall*)())&"gluNewQuadric";
|
||||||
//void (__stdcall* gluDeleteQuadric)(...) = (void (__stdcall*)(...))&"gluDeleteQuadric";
|
void (__stdcall* gluDeleteQuadric)(GLUquadricObj *state) = (void (__stdcall*)(GLUquadricObj*))&"gluDeleteQuadric";
|
||||||
//void (__stdcall* gluQuadricDrawStyle)(...) = (void (__stdcall*)(...))&"gluQuadricDrawStyle";
|
void (__stdcall* gluQuadricDrawStyle)(GLUquadricObj *quadObject, GLenum drawStyle) = (void (__stdcall*)(GLUquadricObj*, GLenum))&"gluQuadricDrawStyle";
|
||||||
//void (__stdcall* gluQuadricOrientation)(...) = (void (__stdcall*)(...))&"gluQuadricOrientation";
|
void (__stdcall* gluQuadricOrientation)(GLUquadricObj *quadObject, GLenum orientation) = (void (__stdcall*)(GLUquadricObj*, GLenum))&"gluQuadricOrientation";
|
||||||
//void (__stdcall* gluQuadricTexture)(...) = (void (__stdcall*)(...))&"gluQuadricTexture";
|
void (__stdcall* gluQuadricTexture)(GLUquadricObj *quadObject, GLboolean textureCoords) = (void (__stdcall*)(GLUquadricObj*, GLboolean))&"gluQuadricTexture";
|
||||||
//void (__stdcall* gluCylinder)(...) = (void (__stdcall*)(...))&"gluCylinder";
|
void (__stdcall* gluCylinder)(GLUquadricObj *qobj,
|
||||||
//void (__stdcall* gluSphere)(...) = (void (__stdcall*)(...))&"gluSphere";
|
GLdouble baseRadius, GLdouble topRadius, GLdouble height, GLint slices, GLint stacks) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLdouble, GLdouble, GLint, GLint))&"gluCylinder";
|
||||||
|
void (__stdcall* gluDisk)(GLUquadricObj *qobj,
|
||||||
|
GLdouble innerRadius, GLdouble outerRadius, GLint slices, GLint loops) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLdouble, GLint, GLint))&"gluDisk";
|
||||||
|
void (__stdcall* gluSphere)(GLUquadricObj *qobj,
|
||||||
|
GLdouble radius, GLint slices, GLint stacks) = (void (__stdcall*)(GLUquadricObj*, GLdouble, GLint, GLint))&"gluSphere";
|
||||||
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent";
|
void (__stdcall* kosglMakeCurrent)(long l, long t, long w, long h, TinyGLContext*) = (void (__stdcall*)(long, long, long, long, TinyGLContext*))&"kosglMakeCurrent";
|
||||||
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers";
|
void (__stdcall* kosglSwapBuffers)() = (void (__stdcall*)())&"kosglSwapBuffers";
|
||||||
asm{
|
asm{
|
||||||
|
BIN
programs/cmm/barscfg/bars_8b.raw
Normal file
@@ -55,9 +55,15 @@ _ini taskbar_vars_ini = { #taskbar_ini_path, "Variables" };
|
|||||||
|
|
||||||
_ini docky_ini = { "/sys/settings/docky.ini", "@" };
|
_ini docky_ini = { "/sys/settings/docky.ini", "@" };
|
||||||
|
|
||||||
unsigned char panels_img_data[] = FROM "bars.raw";
|
|
||||||
#define PIMG_W 37
|
#define PIMG_W 37
|
||||||
#define PIMG_H 27 //27*5
|
#define PIMG_H 27 //27*5
|
||||||
|
unsigned char panels_img_data[] = FROM "bars_8b.raw";
|
||||||
|
dword panels_img_pal[] = {
|
||||||
|
0x00405D74,0x0084FC84,0x00FAFAFA,0x0000B400,
|
||||||
|
0x00E4E4E4,0x008C9B9C,0x000212FD,0x00D8DEDF,
|
||||||
|
0x00585C5D,0x0085B7E0,0x009EC6E7,0x0094C0E5,
|
||||||
|
0x00CB8800,0x00CE3D9E,0x00D20404,0x00485966
|
||||||
|
};
|
||||||
|
|
||||||
proc_info Form;
|
proc_info Form;
|
||||||
|
|
||||||
@@ -137,7 +143,7 @@ void main()
|
|||||||
|
|
||||||
void DrawPanelsImage(dword y, n)
|
void DrawPanelsImage(dword y, n)
|
||||||
{
|
{
|
||||||
PutImage(22, y, PIMG_W, PIMG_H, n * PIMG_W * PIMG_H * 3 + #panels_img_data);
|
PutPaletteImage(n * PIMG_W * PIMG_H + #panels_img_data, PIMG_W, PIMG_H, 22, y, 8, #panels_img_pal);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetDisabledMode()
|
void SetDisabledMode()
|
||||||
|
@@ -68,6 +68,7 @@ struct TWebBrowser {
|
|||||||
void tag_a();
|
void tag_a();
|
||||||
void tag_p();
|
void tag_p();
|
||||||
void tag_img();
|
void tag_img();
|
||||||
|
void tag_kosicon();
|
||||||
void tag_div();
|
void tag_div();
|
||||||
void tag_h1234_caption();
|
void tag_h1234_caption();
|
||||||
void tag_ol_ul_dt();
|
void tag_ol_ul_dt();
|
||||||
@@ -84,6 +85,7 @@ struct TWebBrowser {
|
|||||||
void tag_table();
|
void tag_table();
|
||||||
void tag_td();
|
void tag_td();
|
||||||
void tag_tr();
|
void tag_tr();
|
||||||
|
void reset_font_style();
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "TWB\render.h"
|
#include "TWB\render.h"
|
||||||
@@ -93,24 +95,26 @@ void TWebBrowser::SetPageDefaults()
|
|||||||
{
|
{
|
||||||
t_html = t_body = link = false;
|
t_html = t_body = link = false;
|
||||||
style.reset();
|
style.reset();
|
||||||
|
reset_font_style();
|
||||||
link_color_default = 0x0000FF;
|
link_color_default = 0x0000FF;
|
||||||
link_color_active = 0xFF0000;
|
link_color_active = 0xFF0000;
|
||||||
style.cur_line_h = list.item_h;
|
|
||||||
links.clear();
|
links.clear();
|
||||||
anchors.clear();
|
anchors.clear();
|
||||||
img_url.drop();
|
img_url.drop();
|
||||||
text_colors.drop();
|
text_colors.drop();
|
||||||
text_colors.add(0);
|
text_colors.add(0);
|
||||||
|
if (secondrun) {
|
||||||
|
canvas.Init(list.x, list.y, list.w, math.max(list.visible, list.count)+200);
|
||||||
|
canvas.Fill(0, bg_colors.get(0));
|
||||||
|
}
|
||||||
bg_colors.drop();
|
bg_colors.drop();
|
||||||
bg_colors.add(DEFAULT_BG_COL);
|
bg_colors.add(DEFAULT_BG_COL);
|
||||||
canvas.Fill(0, DEFAULT_BG_COL);
|
|
||||||
header = NULL;
|
header = NULL;
|
||||||
draw_y = BODY_MARGIN;
|
draw_y = BODY_MARGIN;
|
||||||
draw_x = left_gap = BODY_MARGIN;
|
draw_x = left_gap = BODY_MARGIN;
|
||||||
draw_w = list.w - BODY_MARGIN;
|
draw_w = list.w - BODY_MARGIN - BODY_MARGIN;
|
||||||
linebuf = 0;
|
linebuf = 0;
|
||||||
redirect = '\0';
|
redirect = '\0';
|
||||||
list.SetFont(8, 14, 10011000b);
|
|
||||||
tag_table_reset();
|
tag_table_reset();
|
||||||
is_html = true;
|
is_html = true;
|
||||||
if (!strstri(bufpointer, "<body")) {
|
if (!strstri(bufpointer, "<body")) {
|
||||||
@@ -133,8 +137,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
dword bufpos;
|
dword bufpos;
|
||||||
bufsize = _bufsize;
|
bufsize = _bufsize;
|
||||||
|
|
||||||
if (list.w!=canvas.bufw) canvas.Init(list.x, list.y, list.w, 400*20);
|
|
||||||
|
|
||||||
if (bufpointer == _bufpointer) {
|
if (bufpointer == _bufpointer) {
|
||||||
custom_encoding = cur_encoding;
|
custom_encoding = cur_encoding;
|
||||||
} else {
|
} else {
|
||||||
@@ -153,7 +155,6 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
table.cols.drop();
|
table.cols.drop();
|
||||||
secondrun = false;
|
secondrun = false;
|
||||||
|
|
||||||
@@ -176,7 +177,7 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ESBYTE[bufpos] == '&') {
|
if (ESBYTE[bufpos] == '&') {
|
||||||
bufpos = GetUnicodeSymbol(#linebuf, sizeof(TWebBrowser.linebuf), bufpos+1, bufpointer+bufsize);
|
bufpos = GetUnicodeSymbol(#linebuf, sizeof(TWebBrowser.linebuf)-1, bufpos+1, bufpointer+bufsize);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (ESBYTE[bufpos] == '<') && (is_html) {
|
if (ESBYTE[bufpos] == '<') && (is_html) {
|
||||||
@@ -216,19 +217,15 @@ void TWebBrowser::ParseHtml(dword _bufpointer, _bufsize){
|
|||||||
AddCharToTheLine(ESBYTE[bufpos]);
|
AddCharToTheLine(ESBYTE[bufpos]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RenderTextbuf();
|
||||||
|
list.count = draw_y + style.cur_line_h;
|
||||||
|
list.CheckDoesValuesOkey();
|
||||||
|
anchors.current = NULL;
|
||||||
|
|
||||||
if (!secondrun) {
|
if (!secondrun) {
|
||||||
secondrun = true;
|
secondrun = true;
|
||||||
goto _PARSE_START_;
|
goto _PARSE_START_;
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderTextbuf();
|
|
||||||
list.count = draw_y + style.cur_line_h;
|
|
||||||
|
|
||||||
canvas.bufh = math.max(list.visible, list.count);
|
|
||||||
buf_data = realloc(buf_data, canvas.bufh * canvas.bufw * 4 + 8);
|
|
||||||
|
|
||||||
list.CheckDoesValuesOkey();
|
|
||||||
anchors.current = NULL;
|
|
||||||
if (!header) {
|
if (!header) {
|
||||||
strncpy(#header, #version, sizeof(TWebBrowser.header)-1);
|
strncpy(#header, #version, sizeof(TWebBrowser.header)-1);
|
||||||
DrawTitle(#header);
|
DrawTitle(#header);
|
||||||
|
@@ -45,9 +45,10 @@ void PAGE_LINKS::clear()
|
|||||||
w.drop();
|
w.drop();
|
||||||
h.drop();
|
h.drop();
|
||||||
underline_h.drop();
|
underline_h.drop();
|
||||||
|
id.drop();
|
||||||
|
|
||||||
element_links.drop();
|
element_links.drop();
|
||||||
unic_links.drop();
|
unic_links.drop();
|
||||||
id.drop();
|
|
||||||
|
|
||||||
active = -1;
|
active = -1;
|
||||||
active_url = 0;
|
active_url = 0;
|
||||||
|
@@ -67,7 +67,7 @@ bool _tag::parse(dword _bufpos, bufend)
|
|||||||
|
|
||||||
if (!whitepos) || (whitepos > closepos) {
|
if (!whitepos) || (whitepos > closepos) {
|
||||||
//no param
|
//no param
|
||||||
strncpy(#name, bufpos, math.min(closepos - bufpos, sizeof(tag.name)));
|
strncpy(#name, bufpos, math.min(closepos - bufpos, sizeof(tag.name)-1));
|
||||||
bufpos = closepos;
|
bufpos = closepos;
|
||||||
} else {
|
} else {
|
||||||
//we have param
|
//we have param
|
||||||
@@ -76,7 +76,7 @@ bool _tag::parse(dword _bufpos, bufend)
|
|||||||
if (openpos < strchr(closepos+1, '>')) break;
|
if (openpos < strchr(closepos+1, '>')) break;
|
||||||
if (!closepos = EAX) {closepos = bufend;break;}
|
if (!closepos = EAX) {closepos = bufend;break;}
|
||||||
}
|
}
|
||||||
strncpy(#name, bufpos, math.min(whitepos - bufpos, sizeof(tag.name)));
|
strncpy(#name, bufpos, math.min(whitepos - bufpos, sizeof(tag.name)-1));
|
||||||
bufpos = closepos;
|
bufpos = closepos;
|
||||||
|
|
||||||
params = malloc(closepos - whitepos + 1);
|
params = malloc(closepos - whitepos + 1);
|
||||||
@@ -112,6 +112,7 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
// "pe" - param end
|
// "pe" - param end
|
||||||
// "q" - quote char
|
// "q" - quote char
|
||||||
char q = NULL;
|
char q = NULL;
|
||||||
|
dword initial_pe = pe;
|
||||||
dword fixeq;
|
dword fixeq;
|
||||||
dword val;
|
dword val;
|
||||||
dword attr;
|
dword attr;
|
||||||
@@ -145,6 +146,14 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
//already have ATTR end
|
//already have ATTR end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pe > ps) pe--;
|
||||||
|
|
||||||
|
//Fix case: "src ="
|
||||||
|
while (pe>ps) && (__isWhite(ESBYTE[pe])) {
|
||||||
|
ESBYTE[pe] = '\0';
|
||||||
|
pe--;
|
||||||
|
}
|
||||||
|
|
||||||
//find ATTR start and copy
|
//find ATTR start and copy
|
||||||
while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--;
|
while (pe>ps) && (!__isWhite(ESBYTE[pe])) pe--;
|
||||||
attr = pe + 1;
|
attr = pe + 1;
|
||||||
@@ -161,6 +170,8 @@ dword _tag::get_next_param(dword ps, pe)
|
|||||||
}
|
}
|
||||||
strlwr(attr);
|
strlwr(attr);
|
||||||
strrtrim(val);
|
strrtrim(val);
|
||||||
|
//Fix case: " img.png"
|
||||||
|
while(__isWhite(ESBYTE[val])) && (val<initial_pe) val++;
|
||||||
|
|
||||||
attributes.add(attr);
|
attributes.add(attr);
|
||||||
values.add(val);
|
values.add(val);
|
||||||
|
@@ -10,11 +10,9 @@ void TWebBrowser::RenderLine(dword _line)
|
|||||||
if (style.title)
|
if (style.title)
|
||||||
{
|
{
|
||||||
strncpy(#header, _line, sizeof(TWebBrowser.header)-1);
|
strncpy(#header, _line, sizeof(TWebBrowser.header)-1);
|
||||||
if (!application_mode) {
|
|
||||||
strncat(#header, " - ", sizeof(TWebBrowser.header)-1);
|
strncat(#header, " - ", sizeof(TWebBrowser.header)-1);
|
||||||
strncat(#header, #version, sizeof(TWebBrowser.header)-1);
|
strncat(#header, #version, sizeof(TWebBrowser.header)-1);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (t_html) && (!t_body) {
|
else if (t_html) && (!t_body) {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
@@ -24,9 +22,8 @@ void TWebBrowser::RenderLine(dword _line)
|
|||||||
zoom = list.font_w / BASIC_CHAR_W;
|
zoom = list.font_w / BASIC_CHAR_W;
|
||||||
|
|
||||||
//there is some shit happens!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
//there is some shit happens!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
if (pw > draw_w) {
|
if (pw > draw_w + BODY_MARGIN) {
|
||||||
//draw_w = pw;
|
//debugln("shit");
|
||||||
NewLine();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
@@ -52,14 +49,14 @@ void TWebBrowser::RenderLine(dword _line)
|
|||||||
pc = text_colors.get_last();
|
pc = text_colors.get_last();
|
||||||
if (link) && (pc == text_colors.get(0)) pc = link_color_default;
|
if (link) && (pc == text_colors.get(0)) pc = link_color_default;
|
||||||
|
|
||||||
canvas.WriteText(draw_x, draw_y, list.font_type, pc, _line, NULL);
|
canvas.WriteText(draw_x, draw_y+1, list.font_type, pc, _line, NULL);
|
||||||
if (style.b) canvas.WriteText(draw_x+1, draw_y, list.font_type, pc, _line, NULL);
|
if (style.b) canvas.WriteText(draw_x+1, draw_y+1, list.font_type, pc, _line, NULL);
|
||||||
if (style.s) canvas.DrawBar(draw_x, list.item_h / 2 - zoom + draw_y, pw, zoom, pc);
|
if (style.s) canvas.DrawBar(draw_x, list.item_h / 2 - zoom + draw_y, pw, zoom, pc);
|
||||||
if (style.u) canvas.DrawBar(draw_x, list.item_h - zoom - zoom + draw_y, pw, zoom, pc);
|
if (style.u) canvas.DrawBar(draw_x, draw_y + list.font_h, pw, zoom, pc);
|
||||||
if (link) {
|
if (link) {
|
||||||
if (ESBYTE[_line]==' ') && (ESBYTE[_line+1]==NULL) {} else {
|
if (ESBYTE[_line]==' ') && (ESBYTE[_line+1]==NULL) {} else {
|
||||||
canvas.DrawBar(draw_x, draw_y + list.item_h - calc(zoom*2)-1, pw, zoom, link_color_default);
|
canvas.DrawBar(draw_x, draw_y + list.font_h, pw, zoom, link_color_default);
|
||||||
links.add_text(draw_x, draw_y + list.y, pw, list.item_h - calc(zoom*2)-1, zoom);
|
links.add_text(draw_x, draw_y + list.y, pw, list.font_h, zoom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_SKIP_DRAW:
|
_SKIP_DRAW:
|
||||||
@@ -85,12 +82,13 @@ void TWebBrowser::RenderTextbuf()
|
|||||||
|
|
||||||
//debugln(" \\n");
|
//debugln(" \\n");
|
||||||
|
|
||||||
//Is a new line fits in the current line?
|
//Is a new line fits in the maximum line width?
|
||||||
if (br * list.font_w + draw_x - left_gap >= draw_w) {
|
if (br * list.font_w + draw_x - left_gap >= draw_w) {
|
||||||
br = draw_w - draw_x + left_gap /list.font_w;
|
br = draw_w - draw_x + left_gap /list.font_w;
|
||||||
|
if (br < 0) br = 0;
|
||||||
while(br) {
|
while(br) {
|
||||||
if (ESBYTE[lbp + br]==' ') {
|
if (ESBYTE[lbp + br]==' ') {
|
||||||
br++;
|
if (br < len) br++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
br--;
|
br--;
|
||||||
@@ -98,7 +96,16 @@ void TWebBrowser::RenderTextbuf()
|
|||||||
}
|
}
|
||||||
//Maybe a new line is too big for the whole new line? Then we have to split it
|
//Maybe a new line is too big for the whole new line? Then we have to split it
|
||||||
if (!br) && (len * list.font_w >= draw_w) {
|
if (!br) && (len * list.font_w >= draw_w) {
|
||||||
|
//debugln("bigbr");
|
||||||
|
//debugval("draw_x", draw_x);
|
||||||
|
//debugval("draw_w", draw_w);
|
||||||
br = draw_w - draw_x / list.font_w;
|
br = draw_w - draw_x / list.font_w;
|
||||||
|
//debugval("cut into 1", br * list.font_w);
|
||||||
|
if (br < 0) {
|
||||||
|
NewLine();
|
||||||
|
br = draw_w - draw_x / list.font_w;
|
||||||
|
//debugval("cut into 2", br * list.font_w);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (br) {
|
if (br) {
|
||||||
@@ -124,7 +131,11 @@ void TWebBrowser::NewLine()
|
|||||||
if (t_html) && (!t_body) return;
|
if (t_html) && (!t_body) return;
|
||||||
|
|
||||||
if (draw_x == style.tag_list.level * 5 * list.font_w + left_gap) {
|
if (draw_x == style.tag_list.level * 5 * list.font_w + left_gap) {
|
||||||
if (!empty_line) empty_line=true; else return;
|
if (!empty_line) {
|
||||||
|
empty_line=true;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
empty_line = false;
|
empty_line = false;
|
||||||
}
|
}
|
||||||
@@ -140,7 +151,7 @@ bool TWebBrowser::RenderImage(dword cur_img)
|
|||||||
int img_x, img_y, img_w, img_h;
|
int img_x, img_y, img_w, img_h;
|
||||||
dword imgbuf[44];
|
dword imgbuf[44];
|
||||||
|
|
||||||
if (!cur_img) return false;
|
if (!cur_img) || (!buf_data) return false;
|
||||||
|
|
||||||
img_h = ESDWORD[cur_img+8];
|
img_h = ESDWORD[cur_img+8];
|
||||||
img_w = ESDWORD[cur_img+4];
|
img_w = ESDWORD[cur_img+4];
|
||||||
|
@@ -10,6 +10,7 @@ void TWebBrowser::SetStyle()
|
|||||||
if (tag.is("a")) { tag_a(); return; }
|
if (tag.is("a")) { tag_a(); return; }
|
||||||
if (tag.is("p")) { tag_p(); return; }
|
if (tag.is("p")) { tag_p(); return; }
|
||||||
if (tag.is("img")) { tag_img(); return; }
|
if (tag.is("img")) { tag_img(); return; }
|
||||||
|
if (tag.is("kosicon")) { tag_kosicon(); return; }
|
||||||
if (tag.is("div")) { tag_div(); return; }
|
if (tag.is("div")) { tag_div(); return; }
|
||||||
if (tag.is("br")) { /*draw_x++;*/NewLine(); return; }
|
if (tag.is("br")) { /*draw_x++;*/NewLine(); return; }
|
||||||
if (tag.is("nav")) { style.nav = tag.opened; return; }
|
if (tag.is("nav")) { style.nav = tag.opened; return; }
|
||||||
@@ -56,15 +57,12 @@ void TWebBrowser::SetStyle()
|
|||||||
if (tag.is("tr")) { tag_table(); return; }
|
if (tag.is("tr")) { tag_table(); return; }
|
||||||
if (tag.is("th")) { tag_table(); return; }
|
if (tag.is("th")) { tag_table(); return; }
|
||||||
if (tag.is("td")) { tag_table(); return; }
|
if (tag.is("td")) { tag_table(); return; }
|
||||||
|
|
||||||
if (application_mode) {
|
|
||||||
if (tag.is("exit")) { ExitProcess(); return; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_p()
|
void TWebBrowser::tag_p()
|
||||||
{
|
{
|
||||||
IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) || (streq(#tag.prior,"p")) return;
|
IF (tag.prior[0] == 'h') || (streq(#tag.prior,"td")) return;
|
||||||
|
IF (!tag.opened) && (streq(#tag.prior,"p")) return;
|
||||||
NewLine();
|
NewLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,6 +120,7 @@ void TWebBrowser::tag_iframe()
|
|||||||
|
|
||||||
void TWebBrowser::tag_a()
|
void TWebBrowser::tag_a()
|
||||||
{
|
{
|
||||||
|
if (!secondrun) return;
|
||||||
if (tag.opened)
|
if (tag.opened)
|
||||||
{
|
{
|
||||||
if (tag.get_value_of("href")) && (!strstr(tag.value,"javascript:"))
|
if (tag.get_value_of("href")) && (!strstr(tag.value,"javascript:"))
|
||||||
@@ -136,6 +135,7 @@ void TWebBrowser::tag_a()
|
|||||||
|
|
||||||
void TWebBrowser::tag_meta_xml()
|
void TWebBrowser::tag_meta_xml()
|
||||||
{
|
{
|
||||||
|
if (secondrun) return;
|
||||||
if (custom_encoding == -1) if (tag.get_value_of("charset"))
|
if (custom_encoding == -1) if (tag.get_value_of("charset"))
|
||||||
|| (tag.get_value_of("content")) || (tag.get_value_of("encoding"))
|
|| (tag.get_value_of("content")) || (tag.get_value_of("encoding"))
|
||||||
{
|
{
|
||||||
@@ -148,22 +148,6 @@ void TWebBrowser::tag_meta_xml()
|
|||||||
if (streq(tag.get_value_of("http-equiv"), "refresh")) && (tag.get_value_of("content")) {
|
if (streq(tag.get_value_of("http-equiv"), "refresh")) && (tag.get_value_of("content")) {
|
||||||
if (tag.value = strstri(tag.value, "url")) strcpy(#redirect, tag.value);
|
if (tag.value = strstri(tag.value, "url")) strcpy(#redirect, tag.value);
|
||||||
}
|
}
|
||||||
if (streq(tag.get_value_of("name"), "application")) {
|
|
||||||
if (application_mode) {
|
|
||||||
if (tag.get_number_of("left")) {
|
|
||||||
MoveSize(tag.number,-1,-1,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("top")) {
|
|
||||||
MoveSize(-1,tag.number,-1,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("width")) {
|
|
||||||
MoveSize(-1,-1,tag.number,-1);
|
|
||||||
}
|
|
||||||
if (tag.get_number_of("height")) {
|
|
||||||
MoveSize(-1,-1,-1,tag.number);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
signed int get_encoding_type_by_name(dword name)
|
signed int get_encoding_type_by_name(dword name)
|
||||||
@@ -206,7 +190,7 @@ void TWebBrowser::tag_ol_ul_dt()
|
|||||||
|
|
||||||
void TWebBrowser::tag_li()
|
void TWebBrowser::tag_li()
|
||||||
{
|
{
|
||||||
if (style.nav) return;
|
//if (style.nav) return;
|
||||||
if (tag.opened) {
|
if (tag.opened) {
|
||||||
if (!style.tag_list.level) style.tag_list.upd_level(1, 'u');
|
if (!style.tag_list.level) style.tag_list.upd_level(1, 'u');
|
||||||
if (!style.pre) NewLine();
|
if (!style.pre) NewLine();
|
||||||
@@ -224,9 +208,20 @@ void TWebBrowser::tag_li()
|
|||||||
void TWebBrowser::tag_hr()
|
void TWebBrowser::tag_hr()
|
||||||
{
|
{
|
||||||
dword hrcol = 0x00777777;
|
dword hrcol = 0x00777777;
|
||||||
if (tag.get_value_of("color")) hrcol = GetColor(tag.value);
|
dword hr_width = draw_w-BODY_MARGIN-BODY_MARGIN;
|
||||||
|
dword hr_size = 1;
|
||||||
|
if (tag.get_value_of("color")) {
|
||||||
|
hrcol = GetColor(tag.value);
|
||||||
|
}
|
||||||
|
if (tag.get_value_of("width")) && (!strchr(tag.value, '%')) {
|
||||||
|
hr_width = math.min(hr_width, tag.get_number_of("width"));
|
||||||
|
}
|
||||||
|
if (tag.get_number_of("size")) {
|
||||||
|
hr_size = math.min(500, tag.number);
|
||||||
|
}
|
||||||
if (draw_x != left_gap) NewLine();
|
if (draw_x != left_gap) NewLine();
|
||||||
if (secondrun) canvas.DrawBar(5+left_gap, style.cur_line_h / 2 + draw_y - 1, draw_w-10, 1, hrcol);
|
if (secondrun) canvas.DrawBar(left_gap, style.cur_line_h / 2 + draw_y - 1, hr_width, hr_size, hrcol);
|
||||||
|
draw_y += hr_size - 3;
|
||||||
draw_x++;
|
draw_x++;
|
||||||
NewLine();
|
NewLine();
|
||||||
return;
|
return;
|
||||||
@@ -238,10 +233,7 @@ void TWebBrowser::tag_body()
|
|||||||
if (tag.get_value_of("link")) link_color_default = GetColor(tag.value);
|
if (tag.get_value_of("link")) link_color_default = GetColor(tag.value);
|
||||||
if (tag.get_value_of("alink")) link_color_active = GetColor(tag.value);
|
if (tag.get_value_of("alink")) link_color_active = GetColor(tag.value);
|
||||||
if (tag.get_value_of("text")) text_colors.set(0, GetColor(tag.value));
|
if (tag.get_value_of("text")) text_colors.set(0, GetColor(tag.value));
|
||||||
if (tag.get_value_of("bgcolor")) {
|
if (tag.get_value_of("bgcolor")) bg_colors.set(0, GetColor(tag.value));
|
||||||
bg_colors.set(0, GetColor(tag.value));
|
|
||||||
canvas.Fill(0, bg_colors.get(0));
|
|
||||||
}
|
|
||||||
// Autodetecting encoding if no encoding was set
|
// Autodetecting encoding if no encoding was set
|
||||||
if (tag.opened) && (custom_encoding==-1) && (cur_encoding == CH_CP866) {
|
if (tag.opened) && (custom_encoding==-1) && (cur_encoding == CH_CP866) {
|
||||||
if (strstr(bufpointer, "\208\190")) ChangeEncoding(CH_UTF8);
|
if (strstr(bufpointer, "\208\190")) ChangeEncoding(CH_UTF8);
|
||||||
@@ -254,6 +246,12 @@ void TWebBrowser::tag_q()
|
|||||||
chrncat(#linebuf, '\"', sizeof(TWebBrowser.linebuf));
|
chrncat(#linebuf, '\"', sizeof(TWebBrowser.linebuf));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TWebBrowser::reset_font_style()
|
||||||
|
{
|
||||||
|
list.SetFont(BASIC_CHAR_W, 14, 10011000b);
|
||||||
|
style.cur_line_h = list.item_h = list.font_h + 5;
|
||||||
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_h1234_caption()
|
void TWebBrowser::tag_h1234_caption()
|
||||||
{
|
{
|
||||||
if (ESBYTE[#tag.name+1]=='4') {
|
if (ESBYTE[#tag.name+1]=='4') {
|
||||||
@@ -264,20 +262,42 @@ void TWebBrowser::tag_h1234_caption()
|
|||||||
} else {
|
} else {
|
||||||
style.h = tag.opened;
|
style.h = tag.opened;
|
||||||
if (tag.opened) {
|
if (tag.opened) {
|
||||||
if (!style.pre) NewLine();
|
if (!style.pre) {
|
||||||
draw_y += 10;
|
NewLine();
|
||||||
list.SetFont(BASIC_CHAR_W*2, 14*2, 10011001b);
|
NewLine();
|
||||||
list.item_h = BASIC_LINE_H * 2 - 2;
|
}
|
||||||
if (tag.is("h1")) style.b = true;
|
if (tag.is("h1")) {
|
||||||
|
list.SetFont(BASIC_CHAR_W*2, 14+13, 10011001b);
|
||||||
|
style.b = true;
|
||||||
|
} else if (tag.is("h2")) {
|
||||||
|
list.SetFont(BASIC_CHAR_W*2, 14+13, 10011001b);
|
||||||
|
} else {
|
||||||
|
list.SetFont(6*2, 9+8, 10001001b);
|
||||||
|
}
|
||||||
|
style.cur_line_h = list.item_h = list.font_h + 3;
|
||||||
} else {
|
} else {
|
||||||
if (tag.is("h1")) style.b = false;
|
if (tag.is("h1")) style.b = false;
|
||||||
NewLine();
|
NewLine();
|
||||||
list.SetFont(BASIC_CHAR_W, 14, 10011000b);
|
reset_font_style();
|
||||||
style.cur_line_h = list.item_h = BASIC_LINE_H;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TWebBrowser::tag_kosicon()
|
||||||
|
{
|
||||||
|
dword imgbuf[44];
|
||||||
|
dword maxicon;
|
||||||
|
dword shared_i18 = memopen("ICONS18", NULL, SHM_READ);
|
||||||
|
maxicon = EDX / 18 / 18 / 4;
|
||||||
|
if (shared_i18) && (tag.get_number_of("n")) {
|
||||||
|
if (tag.number < maxicon) {
|
||||||
|
if (draw_x + 18 > canvas.bufw) NewLine();
|
||||||
|
canvas.DrawImage(draw_x, draw_y-1, 18, 18, 18*18*4*tag.number+shared_i18);
|
||||||
|
draw_x += 22;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_img()
|
void TWebBrowser::tag_img()
|
||||||
{
|
{
|
||||||
@@ -305,7 +325,7 @@ void TWebBrowser::tag_img()
|
|||||||
if (!strcmp(tag.value + strrchr(tag.value, '.'), "webp")) goto NOIMG;
|
if (!strcmp(tag.value + strrchr(tag.value, '.'), "webp")) goto NOIMG;
|
||||||
|
|
||||||
strlcpy(#img_path, tag.value, sizeof(img_path)-1);
|
strlcpy(#img_path, tag.value, sizeof(img_path)-1);
|
||||||
replace_char(#img_path, ' ', '\0', sizeof(img_path));
|
replace_char(#img_path, ' ', '\0', sizeof(img_path)-1);
|
||||||
get_absolute_url(#img_path, history.current());
|
get_absolute_url(#img_path, history.current());
|
||||||
|
|
||||||
if (check_is_the_adress_local(#img_path)) {
|
if (check_is_the_adress_local(#img_path)) {
|
||||||
@@ -317,7 +337,7 @@ void TWebBrowser::tag_img()
|
|||||||
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
img_decode stdcall (cache.current_buf, cache.current_size, 0);
|
||||||
if (EAX) goto IMGOK; else goto NOIMG;
|
if (EAX) goto IMGOK; else goto NOIMG;
|
||||||
} else {
|
} else {
|
||||||
img_url.add(#img_path);
|
if (img_url.get_pos_by_name(#img_path)==-1) img_url.add(#img_path);
|
||||||
goto NOIMG;
|
goto NOIMG;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,31 +362,28 @@ NOIMG:
|
|||||||
text_colors.pop();
|
text_colors.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct TABLE {
|
struct TABLE {
|
||||||
int count;
|
|
||||||
int depth;
|
int depth;
|
||||||
int margin;
|
int margin;
|
||||||
collection_int cols;
|
collection_int cols;
|
||||||
collection_int width;
|
|
||||||
} table;
|
} table;
|
||||||
|
|
||||||
|
unsigned table_id;
|
||||||
int tr_pos, td_pos;
|
unsigned colcount;
|
||||||
int row_start_y;
|
unsigned tr_pos;
|
||||||
int colcount;
|
unsigned td_pos;
|
||||||
dword tallest_cell_in_row;
|
unsigned row_start_y;
|
||||||
|
unsigned tallest_cell_in_row;
|
||||||
|
unsigned cur_cell_w;
|
||||||
|
|
||||||
void TWebBrowser::tag_table_reset()
|
void TWebBrowser::tag_table_reset()
|
||||||
{
|
{
|
||||||
table.depth = 0;
|
table_id = 0;
|
||||||
table.count = 0;
|
|
||||||
colcount = 0;
|
colcount = 0;
|
||||||
tr_pos = 0;
|
tr_pos = 0;
|
||||||
td_pos = 0;
|
td_pos = 0;
|
||||||
|
table.depth = 0;
|
||||||
|
cur_cell_w = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TWebBrowser::tag_table()
|
void TWebBrowser::tag_table()
|
||||||
@@ -380,15 +397,15 @@ void TWebBrowser::tag_table()
|
|||||||
if(tag.opened) {
|
if(tag.opened) {
|
||||||
table.depth++;
|
table.depth++;
|
||||||
if (table.depth==1) {
|
if (table.depth==1) {
|
||||||
table.count++;
|
table_id++;
|
||||||
colcount = 0;
|
colcount = 0;
|
||||||
td_pos = 0;
|
td_pos = 0;
|
||||||
row_start_y = draw_y;
|
row_start_y = draw_y;
|
||||||
if (tag.get_number_of("width")) {
|
if (tag.get_number_of("width")) {
|
||||||
if (strchr(tag.value, '%')) tag.number = list.w * tag.number / 100;
|
if (strchr(tag.value, '%')) tag.number = list.w * tag.number / 100;
|
||||||
table.width.set(table.count, math.min(tag.number,list.w));
|
cur_cell_w = math.min(tag.number,list.w);
|
||||||
} else {
|
} else {
|
||||||
table.width.set(table.count, list.w);
|
cur_cell_w = list.w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -447,26 +464,17 @@ void TWebBrowser::tag_table()
|
|||||||
|
|
||||||
if (!tr_pos) goto _TR_FIX;
|
if (!tr_pos) goto _TR_FIX;
|
||||||
|
|
||||||
/*
|
tallest_cell_in_row = math.max(draw_y+style.cur_line_h-list.item_h+1, tallest_cell_in_row);
|
||||||
if (tag.opened) {
|
|
||||||
if (tag.get_value_of("bgcolor")) {
|
|
||||||
bg_colors.add(GetColor(tag.value));
|
|
||||||
} else {
|
|
||||||
bg_colors.add(bg_colors.get(0));
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
|
|
||||||
tallest_cell_in_row = math.max(draw_y+style.cur_line_h-list.item_h, tallest_cell_in_row);
|
|
||||||
style.cur_line_h = list.item_h;
|
style.cur_line_h = list.item_h;
|
||||||
if (tag.opened) {
|
if (tag.opened)
|
||||||
|
{
|
||||||
if (!td_pos) {
|
if (!td_pos) {
|
||||||
table.margin = list.w - table.width.get(table.count) / 2 + BODY_MARGIN;
|
table.margin = list.w - cur_cell_w / 2 + BODY_MARGIN;
|
||||||
draw_x = left_gap = table.margin;
|
draw_x = left_gap = table.margin;
|
||||||
draw_w = table.width.get(table.count) - BODY_MARGIN;
|
draw_w = cur_cell_w - BODY_MARGIN;
|
||||||
} else {
|
} else {
|
||||||
draw_x = left_gap = left_gap + draw_w;
|
draw_x = left_gap = left_gap + draw_w;
|
||||||
draw_w = table.width.get(table.count) - left_gap + table.margin - BODY_MARGIN;
|
draw_w = cur_cell_w - left_gap + table.margin - BODY_MARGIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EAX = table.cols.get(tr_pos-1)-td_pos) {
|
if (EAX = table.cols.get(tr_pos-1)-td_pos) {
|
||||||
@@ -477,20 +485,19 @@ void TWebBrowser::tag_table()
|
|||||||
}
|
}
|
||||||
if (table.cols.get(tr_pos-1)-td_pos>1) && (tag.get_number_of("width")) {
|
if (table.cols.get(tr_pos-1)-td_pos>1) && (tag.get_number_of("width")) {
|
||||||
if (strchr(tag.value, '%')) {
|
if (strchr(tag.value, '%')) {
|
||||||
tag.number = table.width.get(table.count) - table.margin - 23 - left_gap * tag.number / 100;
|
tag.number = cur_cell_w * tag.number / 100; //
|
||||||
}
|
}
|
||||||
if (tag.number < draw_w) draw_w = tag.number;
|
if (tag.number < list.w - table.margin - left_gap) draw_w = tag.number;
|
||||||
|
|
||||||
}
|
}
|
||||||
draw_y = row_start_y;
|
draw_y = row_start_y;
|
||||||
//canvas.WriteText(draw_x, draw_y, 10001001b, 0x0000FE, itoa(draw_x), NULL);
|
|
||||||
//canvas.WriteText(draw_x, draw_y+20, 10001001b, 0xFF0000, itoa(draw_w), NULL);
|
|
||||||
td_pos++;
|
td_pos++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (draw_x > table.width.get(table.count)) {
|
if (draw_x > cur_cell_w) {
|
||||||
draw_x = left_gap = table.margin;
|
draw_x = left_gap = table.margin;
|
||||||
draw_w = table.width.get(table.count) - table.margin - 23 - left_gap;
|
draw_w = cur_cell_w - table.margin - 23 - left_gap;
|
||||||
table.depth = 0;
|
table.depth = 0;
|
||||||
NewLine();
|
NewLine();
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
@@ -498,11 +505,8 @@ void TWebBrowser::tag_table()
|
|||||||
canvas.DrawBar(0, draw_y, 20, 20, 0xFF0000);
|
canvas.DrawBar(0, draw_y, 20, 20, 0xFF0000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
//if (left_gap + draw_w > list.w) {
|
||||||
if (left_gap + draw_w > list.w) {
|
// draw_w = list.w - left_gap;
|
||||||
draw_w = list.w - left_gap;
|
// if (debug_mode) debugln("anomaly draw_W");
|
||||||
if (debug_mode) debugln("anomaly draw_W");
|
//}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -65,6 +65,9 @@ char *unicode_symbols[]={
|
|||||||
"times", "x",
|
"times", "x",
|
||||||
"lowast","*",
|
"lowast","*",
|
||||||
|
|
||||||
|
"#128154","<3",
|
||||||
|
"#128545",":(",
|
||||||
|
|
||||||
0};
|
0};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
//Copyright 2007-2021 by Veliant & Leency
|
//Copyright 2007-2025 by Veliant & Leency
|
||||||
//Asper, lev, Lrz, Barsuk, Nable, hidnplayr...
|
//Asper, lev, Lrz, Barsuk, Nable, hidnplayr...
|
||||||
|
|
||||||
//BUGS
|
//BUGS
|
||||||
@@ -45,7 +45,6 @@
|
|||||||
bool debug_mode = false;
|
bool debug_mode = false;
|
||||||
bool show_images = true;
|
bool show_images = true;
|
||||||
bool source_mode = false;
|
bool source_mode = false;
|
||||||
bool application_mode = false;
|
|
||||||
|
|
||||||
_history history;
|
_history history;
|
||||||
|
|
||||||
@@ -80,7 +79,7 @@ char default_dir[] = "/sys";
|
|||||||
od_filter filter2 = { 22, "TXT\0HTM\0HTML\0DOCX\0\0" };
|
od_filter filter2 = { 22, "TXT\0HTM\0HTML\0DOCX\0\0" };
|
||||||
|
|
||||||
char editURL[URL_SIZE+1];
|
char editURL[URL_SIZE+1];
|
||||||
edit_box omnibox_edit = {, 0, 0, 0xffffff,
|
edit_box omnibox_edit = {250, 0, 0, 0xffffff,
|
||||||
0x94AECE, 0xffffff, 0xffffff,0x10000000,URL_SIZE-2,#editURL,0,,19,19};
|
0x94AECE, 0xffffff, 0xffffff,0x10000000,URL_SIZE-2,#editURL,0,,19,19};
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
@@ -110,9 +109,6 @@ void HandleParam()
|
|||||||
history.add(#param + 8);
|
history.add(#param + 8);
|
||||||
} else if (!strncmp(#param, "-new ", 5)) {
|
} else if (!strncmp(#param, "-new ", 5)) {
|
||||||
history.add(#param + 5);
|
history.add(#param + 5);
|
||||||
} else if (!strncmp(#param, "-app ", 5)) {
|
|
||||||
history.add(#param + 5);
|
|
||||||
application_mode = true;
|
|
||||||
} else {
|
} else {
|
||||||
if (GetProcessesCount("WEBVIEW") == 1) {
|
if (GetProcessesCount("WEBVIEW") == 1) {
|
||||||
history.add(#param);
|
history.add(#param);
|
||||||
@@ -136,14 +132,6 @@ void main()
|
|||||||
LoadLibraries();
|
LoadLibraries();
|
||||||
HandleParam();
|
HandleParam();
|
||||||
|
|
||||||
if (application_mode) {
|
|
||||||
TOOLBAR_H = 0;
|
|
||||||
PADDING = 0;
|
|
||||||
TSZE = 0;
|
|
||||||
STATUSBAR_H = 0;
|
|
||||||
TAB_H = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
omnibox_edit.left = PADDING+TSZE*2+PADDING+6;
|
omnibox_edit.left = PADDING+TSZE*2+PADDING+6;
|
||||||
omnibox_edit.top = PADDING+3;
|
omnibox_edit.top = PADDING+3;
|
||||||
|
|
||||||
@@ -211,7 +199,7 @@ void main()
|
|||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
ProcessMenuClick();
|
ProcessMenuClick();
|
||||||
sc.get();
|
sc.get();
|
||||||
if (Form.status_window>2) break;
|
if (Form.status_window & ROLLED_UP) break;
|
||||||
if (Form.height<120) { MoveSize(OLD,OLD,OLD,120); break; }
|
if (Form.height<120) { MoveSize(OLD,OLD,OLD,120); break; }
|
||||||
if (Form.width<280) { MoveSize(OLD,OLD,280,OLD); break; }
|
if (Form.width<280) { MoveSize(OLD,OLD,280,OLD); break; }
|
||||||
draw_window();
|
draw_window();
|
||||||
@@ -221,15 +209,6 @@ void main()
|
|||||||
if (http.transfer <= 0) break;
|
if (http.transfer <= 0) break;
|
||||||
http.receive();
|
http.receive();
|
||||||
|
|
||||||
if (http_get_type==PAGE) {
|
|
||||||
CheckContentType();
|
|
||||||
prbar.max = http.content_length;
|
|
||||||
if (prbar.value != http.content_received) {
|
|
||||||
prbar.value = http.content_received;
|
|
||||||
DrawProgress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (http.receive_result != 0) break;
|
if (http.receive_result != 0) break;
|
||||||
if (debug_mode) {
|
if (debug_mode) {
|
||||||
EAX = http.transfer;
|
EAX = http.transfer;
|
||||||
@@ -248,6 +227,15 @@ void main()
|
|||||||
notify("'Too many redirects.' -E");
|
notify("'Too many redirects.' -E");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (http_get_type==PAGE) {
|
||||||
|
CheckContentType();
|
||||||
|
prbar.max = http.content_length;
|
||||||
|
if (prbar.value != http.content_received) {
|
||||||
|
prbar.value = http.content_received;
|
||||||
|
DrawProgress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Loading the page is complete, free resources
|
// Loading the page is complete, free resources
|
||||||
redirect_count = 0;
|
redirect_count = 0;
|
||||||
if (http_get_type==PAGE) {
|
if (http_get_type==PAGE) {
|
||||||
@@ -270,6 +258,7 @@ void main()
|
|||||||
free(http.content_pointer);
|
free(http.content_pointer);
|
||||||
GetImg(false);
|
GetImg(false);
|
||||||
}
|
}
|
||||||
|
debugln("end evNetwork");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -324,7 +313,7 @@ void ProcessKeyEvent()
|
|||||||
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT)
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT)
|
||||||
{
|
{
|
||||||
if (key_scancode == SCAN_CODE_TAB) {EventActivatePreviousTab();return;}
|
if (key_scancode == SCAN_CODE_TAB) {EventActivatePreviousTab();return;}
|
||||||
if (key_scancode == SCAN_CODE_KEY_T) {EventOpenNewTab(URL_SERVICE_TEST);return;}
|
if (key_scancode == SCAN_CODE_BS) {EventOpenNewTab(URL_SERVICE_TEST);return;}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) switch(key_scancode)
|
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) switch(key_scancode)
|
||||||
@@ -349,6 +338,7 @@ void ProcessKeyEvent()
|
|||||||
{
|
{
|
||||||
case SCAN_CODE_UP: EventScrollUpAndDown(SCAN_CODE_UP); return;
|
case SCAN_CODE_UP: EventScrollUpAndDown(SCAN_CODE_UP); return;
|
||||||
case SCAN_CODE_DOWN: EventScrollUpAndDown(SCAN_CODE_DOWN); return;
|
case SCAN_CODE_DOWN: EventScrollUpAndDown(SCAN_CODE_DOWN); return;
|
||||||
|
case SCAN_CODE_F2: EventEditSource(); return;
|
||||||
case SCAN_CODE_F6: {omnibox_edit.flags=ed_focus; DrawOmnibox();} return;
|
case SCAN_CODE_F6: {omnibox_edit.flags=ed_focus; DrawOmnibox();} return;
|
||||||
case SCAN_CODE_F5: EventRefreshPage(); return;
|
case SCAN_CODE_F5: EventRefreshPage(); return;
|
||||||
case SCAN_CODE_ENTER: if (omnibox_edit.flags & ed_focus) EventSubmitOmnibox(); return;
|
case SCAN_CODE_ENTER: if (omnibox_edit.flags & ed_focus) EventSubmitOmnibox(); return;
|
||||||
@@ -382,7 +372,6 @@ void draw_window()
|
|||||||
|
|
||||||
SetElementSizes();
|
SetElementSizes();
|
||||||
|
|
||||||
if (!application_mode) {
|
|
||||||
DrawBar(0,0, Form.cwidth,PADDING, sc.work);
|
DrawBar(0,0, Form.cwidth,PADDING, sc.work);
|
||||||
DrawBar(0,PADDING+TSZE+1, Form.cwidth,PADDING-1, sc.work);
|
DrawBar(0,PADDING+TSZE+1, Form.cwidth,PADDING-1, sc.work);
|
||||||
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, MixColors(sc.dark, sc.work, 180));
|
DrawBar(0,TOOLBAR_H-2, Form.cwidth,1, MixColors(sc.dark, sc.work, 180));
|
||||||
@@ -398,7 +387,6 @@ void draw_window()
|
|||||||
|
|
||||||
DrawRectangle(WB1.list.x + WB1.list.w, WB1.list.y, scroll_wv.size_x,
|
DrawRectangle(WB1.list.x + WB1.list.w, WB1.list.y, scroll_wv.size_x,
|
||||||
WB1.list.h-1, scroll_wv.bckg_col);
|
WB1.list.h-1, scroll_wv.bckg_col);
|
||||||
}
|
|
||||||
|
|
||||||
if (!canvas.bufw) {
|
if (!canvas.bufw) {
|
||||||
EventOpenFirstPage();
|
EventOpenFirstPage();
|
||||||
@@ -406,14 +394,11 @@ void draw_window()
|
|||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
DrawOmnibox();
|
DrawOmnibox();
|
||||||
}
|
}
|
||||||
if (!application_mode) {
|
|
||||||
DrawProgress();
|
DrawProgress();
|
||||||
DrawStatusBar(NULL);
|
DrawStatusBar(NULL);
|
||||||
DrawTabsBar();
|
DrawTabsBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventOpenFirstPage()
|
void EventOpenFirstPage()
|
||||||
{
|
{
|
||||||
OpenPage(history.current());
|
OpenPage(history.current());
|
||||||
@@ -532,7 +517,6 @@ bool GetLocalFileData(dword _path)
|
|||||||
bool GetUrl(dword _http_url)
|
bool GetUrl(dword _http_url)
|
||||||
{
|
{
|
||||||
char new_url_full[URL_SIZE+1];
|
char new_url_full[URL_SIZE+1];
|
||||||
|
|
||||||
if (!strncmp(_http_url,"http:",5)) {
|
if (!strncmp(_http_url,"http:",5)) {
|
||||||
http.get(_http_url);
|
http.get(_http_url);
|
||||||
return true;
|
return true;
|
||||||
@@ -588,7 +572,6 @@ void OpenPage(dword _open_URL)
|
|||||||
history.add(#new_url);
|
history.add(#new_url);
|
||||||
WB1.custom_encoding = -1;
|
WB1.custom_encoding = -1;
|
||||||
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home));
|
if (streq(#new_url, URL_SERVICE_HOMEPAGE)) LoadInternalPage(#buildin_page_home, sizeof(buildin_page_home));
|
||||||
else if (streq(#new_url, URL_SERVICE_HELP)) LoadInternalPage(#buildin_page_help, sizeof(buildin_page_help));
|
|
||||||
else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test));
|
else if (streq(#new_url, URL_SERVICE_TEST)) LoadInternalPage(#buildin_page_test, sizeof(buildin_page_test));
|
||||||
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory();
|
else if (streq(#new_url, URL_SERVICE_HISTORY)) ShowHistory();
|
||||||
else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
|
else LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
|
||||||
@@ -619,7 +602,7 @@ void OpenPage(dword _open_URL)
|
|||||||
strcpy(#new_url, "/tmp0/1/temp/word/document.xml");
|
strcpy(#new_url, "/tmp0/1/temp/word/document.xml");
|
||||||
}
|
}
|
||||||
if (!GetLocalFileData(#new_url)) {
|
if (!GetLocalFileData(#new_url)) {
|
||||||
LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error));
|
LoadInternalPage(#buildin_page_error, sizeof(buildin_page_error)-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -757,7 +740,12 @@ void LoadInternalPage(dword _bufdata, _in_bufsize){
|
|||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
}
|
}
|
||||||
http.hfree();
|
http.hfree();
|
||||||
if (WB1.img_url.count) { GetImg(true); DrawOmnibox(); }
|
if (WB1.img_url.count) {
|
||||||
|
GetImg(true);
|
||||||
|
DrawOmnibox();
|
||||||
|
} else {
|
||||||
|
PageLoaded();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -770,7 +758,6 @@ bool UrlExtIs(dword base, ext)
|
|||||||
void DrawProgress()
|
void DrawProgress()
|
||||||
{
|
{
|
||||||
dword pct;
|
dword pct;
|
||||||
if (application_mode) return;
|
|
||||||
if (!http.transfer) return;
|
if (!http.transfer) return;
|
||||||
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
if (http_get_type==PAGE) && (prbar.max) pct = prbar.value*30/prbar.max; else pct = 10;
|
||||||
if (http_get_type==IMG) pct = prbar.value * 70 / prbar.max + 30;
|
if (http_get_type==IMG) pct = prbar.value * 70 / prbar.max + 30;
|
||||||
@@ -779,21 +766,18 @@ void DrawProgress()
|
|||||||
|
|
||||||
void EventShowPageMenu()
|
void EventShowPageMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #rmb_menu);
|
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #rmb_menu);
|
||||||
menu_id = VIEW_SOURCE;
|
menu_id = BACK_BUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventShowLinkMenu()
|
void EventShowLinkMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #link_menu);
|
open_lmenu(mouse.x, mouse.y, MENU_TOP_LEFT, NULL, #link_menu);
|
||||||
menu_id = IN_NEW_TAB;
|
menu_id = IN_NEW_TAB;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventShowMainMenu()
|
void EventShowMainMenu()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(Form.cwidth - PADDING -4, PADDING + TSZE + 3,
|
open_lmenu(Form.cwidth - PADDING -4, PADDING + TSZE + 3,
|
||||||
MENU_TOP_RIGHT, NULL, #main_menu);
|
MENU_TOP_RIGHT, NULL, #main_menu);
|
||||||
menu_id = OPEN_FILE;
|
menu_id = OPEN_FILE;
|
||||||
@@ -801,7 +785,6 @@ void EventShowMainMenu()
|
|||||||
|
|
||||||
void EventShowEncodingsList()
|
void EventShowEncodingsList()
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
open_lmenu(Form.cwidth-4, Form.cheight - STATUSBAR_H + 12,
|
open_lmenu(Form.cwidth-4, Form.cheight - STATUSBAR_H + 12,
|
||||||
MENU_BOT_RIGHT, WB1.cur_encoding + 1,
|
MENU_BOT_RIGHT, WB1.cur_encoding + 1,
|
||||||
"UTF-8\nKOI8-RU\nCP1251\nCP1252\nISO8859-5\nCP866");
|
"UTF-8\nKOI8-RU\nCP1251\nCP1252\nISO8859-5\nCP866");
|
||||||
@@ -824,7 +807,8 @@ void EventSeachWeb()
|
|||||||
{
|
{
|
||||||
char new_url[URL_SIZE+1];
|
char new_url[URL_SIZE+1];
|
||||||
replace_char(#editURL, ' ', '+', URL_SIZE);
|
replace_char(#editURL, ' ', '+', URL_SIZE);
|
||||||
strcpy(#new_url, "https://www.google.com/search?q=");
|
//strcpy(#new_url, "https://html.duckduckgo.com/html/?q=");
|
||||||
|
strcpy(#new_url, "http://bing.com/search?q=");
|
||||||
strncat(#new_url, #editURL, URL_SIZE);
|
strncat(#new_url, #editURL, URL_SIZE);
|
||||||
OpenPage(#new_url);
|
OpenPage(#new_url);
|
||||||
}
|
}
|
||||||
@@ -886,8 +870,7 @@ void DrawStatusBar(dword _msg)
|
|||||||
{
|
{
|
||||||
dword status_y = Form.cheight - STATUSBAR_H + 4;
|
dword status_y = Form.cheight - STATUSBAR_H + 4;
|
||||||
dword status_w = Form.cwidth - 90;
|
dword status_w = Form.cwidth - 90;
|
||||||
if (application_mode) return;
|
if (Form.status_window & ROLLED_UP) return;
|
||||||
if (Form.status_window>2) return;
|
|
||||||
DrawBar(0,Form.cheight - STATUSBAR_H+1, Form.cwidth,STATUSBAR_H-1, sc.work);
|
DrawBar(0,Form.cheight - STATUSBAR_H+1, Form.cwidth,STATUSBAR_H-1, sc.work);
|
||||||
if (_msg) {
|
if (_msg) {
|
||||||
ESI = math.min(status_w/6, strlen(_msg));
|
ESI = math.min(status_w/6, strlen(_msg));
|
||||||
@@ -900,7 +883,6 @@ void DrawStatusBar(dword _msg)
|
|||||||
void DrawOmnibox()
|
void DrawOmnibox()
|
||||||
{
|
{
|
||||||
int imgxoff;
|
int imgxoff;
|
||||||
if (application_mode) return;
|
|
||||||
DrawOvalBorder(omnibox_edit.left-2, omnibox_edit.top-3, omnibox_edit.width+18, 24, sc.line,
|
DrawOvalBorder(omnibox_edit.left-2, omnibox_edit.top-3, omnibox_edit.width+18, 24, sc.line,
|
||||||
sc.line, sc.line, sc.dark);
|
sc.line, sc.line, sc.dark);
|
||||||
DrawBar(omnibox_edit.left-1, omnibox_edit.top-2, omnibox_edit.width+18, 1, 0xD8DCD8);
|
DrawBar(omnibox_edit.left-1, omnibox_edit.top-2, omnibox_edit.width+18, 1, 0xD8DCD8);
|
||||||
@@ -919,7 +901,6 @@ void DrawOmnibox()
|
|||||||
|
|
||||||
void SetOmniboxText(dword _text)
|
void SetOmniboxText(dword _text)
|
||||||
{
|
{
|
||||||
if (application_mode) return;
|
|
||||||
edit_box_set_text stdcall (#omnibox_edit, _text);
|
edit_box_set_text stdcall (#omnibox_edit, _text);
|
||||||
omnibox_edit.pos = omnibox_edit.flags = 0;
|
omnibox_edit.pos = omnibox_edit.flags = 0;
|
||||||
DrawOmnibox();
|
DrawOmnibox();
|
||||||
@@ -939,7 +920,7 @@ dword GetAbsoluteActiveURL()
|
|||||||
void CheckContentType()
|
void CheckContentType()
|
||||||
{
|
{
|
||||||
char content_type[64];
|
char content_type[64];
|
||||||
if (http.header_field("content-type", #content_type, sizeof(content_type))) // application || image
|
if (http.header_field("content-type", #content_type, sizeof(content_type)-1)) // application || image
|
||||||
|
|
||||||
if (content_type[0] == 'i') {
|
if (content_type[0] == 'i') {
|
||||||
EventDownloadAndOpenImage(http.cur_url);
|
EventDownloadAndOpenImage(http.cur_url);
|
||||||
@@ -987,12 +968,14 @@ dword GetImg(bool _new)
|
|||||||
for (i = 0; i < WB1.img_url.count; i++)
|
for (i = 0; i < WB1.img_url.count; i++)
|
||||||
{
|
{
|
||||||
cur_img_url = WB1.img_url.get(i);
|
cur_img_url = WB1.img_url.get(i);
|
||||||
if (debug_mode)
|
|
||||||
{debug("get img: ");debugln(cur_img_url);}
|
|
||||||
if (cache.has(cur_img_url)==false) {
|
if (cache.has(cur_img_url)==false) {
|
||||||
prbar.max = WB1.img_url.count;
|
prbar.max = WB1.img_url.count;
|
||||||
prbar.value = i;
|
prbar.value = i;
|
||||||
if (GetUrl(cur_img_url)) {DrawStatusBar(cur_img_url); DrawProgress(); return;}
|
if (GetUrl(cur_img_url)) {
|
||||||
|
DrawStatusBar(cur_img_url);
|
||||||
|
DrawProgress();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_new) return;
|
if (_new) return;
|
||||||
@@ -1000,8 +983,13 @@ dword GetImg(bool _new)
|
|||||||
DrawStatusBar(T_RENDERING);
|
DrawStatusBar(T_RENDERING);
|
||||||
WB1.Reparse();
|
WB1.Reparse();
|
||||||
WB1.DrawPage();
|
WB1.DrawPage();
|
||||||
debugln(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100));
|
PageLoaded();
|
||||||
DrawStatusBar(NULL);
|
}
|
||||||
|
|
||||||
|
void PageLoaded()
|
||||||
|
{
|
||||||
|
DrawStatusBar(sprintf(#param, T_DONE_IN_SEC, GetStartTime()-render_start_time/100,
|
||||||
|
GetStartTime()-render_start_time*10));
|
||||||
}
|
}
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
|
@@ -16,7 +16,7 @@ struct _cache
|
|||||||
void add();
|
void add();
|
||||||
bool has();
|
bool has();
|
||||||
void clear();
|
void clear();
|
||||||
} cache=0;
|
} cache;
|
||||||
|
|
||||||
void _cache::add(dword _url, _data, _size, _type, _charset)
|
void _cache::add(dword _url, _data, _size, _type, _charset)
|
||||||
{
|
{
|
||||||
@@ -37,6 +37,7 @@ void _cache::add(dword _url, _data, _size, _type, _charset)
|
|||||||
bool _cache::has(dword _link)
|
bool _cache::has(dword _link)
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
|
if (!url.count) return false;
|
||||||
pos = url.get_pos_by_name(_link);
|
pos = url.get_pos_by_name(_link);
|
||||||
if (pos != -1) {
|
if (pos != -1) {
|
||||||
current_buf = data.get(pos);
|
current_buf = data.get(pos);
|
||||||
|
@@ -9,8 +9,11 @@ char buildin_page_home[] = FROM "res/homepage_ru.htm";
|
|||||||
char buildin_page_help[] = FROM "res/help_ru.htm";
|
char buildin_page_help[] = FROM "res/help_ru.htm";
|
||||||
char accept_language[]= "Accept-Language: ru\n";
|
char accept_language[]= "Accept-Language: ru\n";
|
||||||
char rmb_menu[] =
|
char rmb_menu[] =
|
||||||
"<EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD>|Ctrl+U
|
"Back|Ctrl+<
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>";
|
Forward|Ctrl+>
|
||||||
|
-
|
||||||
|
<EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>|Ctrl+U
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD>|F2";
|
||||||
char main_menu[] =
|
char main_menu[] =
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>...|Ctrl+O
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 䠩<>...|Ctrl+O
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+N
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+N
|
||||||
@@ -27,14 +30,14 @@ char link_menu[] =
|
|||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>뫪<EFBFBD>";
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>뫪<EFBFBD>";
|
||||||
char loading_text[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>...";
|
char loading_text[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>...";
|
||||||
|
|
||||||
char update_param[] = "-e http://builds.kolibrios.org/rus/data/programs/cmm/browser/WebView.com";
|
char update_param[] = "-e http://builds.kolibrios.org/ru_RU/data/programs/cmm/browser/WebView.com";
|
||||||
char update_download_error[] = "'WebView\n<EFBFBD>訡<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tE";
|
char update_download_error[] = "'WebView\n<EFBFBD>訡<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tE";
|
||||||
char update_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD>㧥<EFBFBD> <20><><EFBFBD> <20>ᯥ譮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tO";
|
char update_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD>㧥<EFBFBD> <20><><EFBFBD> <20>ᯥ譮 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!' -tO";
|
||||||
char update_is_current[] = "'WebView\n<EFBFBD><EFBFBD> 㦥 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.' -tI";
|
char update_is_current[] = "'WebView\n<EFBFBD><EFBFBD> 㦥 <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.' -tI";
|
||||||
char update_can_not_copy[] = "'WebView\n<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Downloads <20><> Ramdisk. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD>.' -tE";
|
char update_can_not_copy[] = "'WebView\n<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> Downloads <20><> Ramdisk. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮 <20><><EFBFBD><EFBFBD><EFBFBD>.' -tE";
|
||||||
char clear_cache_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>饭.' -tI";
|
char clear_cache_ok[] = "'WebView\n<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>饭.' -tI";
|
||||||
#define T_RENDERING "<22><><EFBFBD><EFBFBD><EFBFBD>ਭ<EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>..."
|
#define T_RENDERING "<22><><EFBFBD><EFBFBD><EFBFBD>ਭ<EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>..."
|
||||||
#define T_DONE_IN_SEC "<22><>⮢<EFBFBD>: %i ᥪ"
|
#define T_DONE_IN_SEC "<22><>⮢<EFBFBD>: %i ᥪ (%i <20><><EFBFBD><EFBFBD>ᥪ)"
|
||||||
#else
|
#else
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
@@ -46,8 +49,11 @@ char buildin_page_home[] = FROM "res/homepage_en.htm";
|
|||||||
char buildin_page_help[] = FROM "res/help_en.htm";
|
char buildin_page_help[] = FROM "res/help_en.htm";
|
||||||
char accept_language[]= "Accept-Language: en\n";
|
char accept_language[]= "Accept-Language: en\n";
|
||||||
char rmb_menu[] =
|
char rmb_menu[] =
|
||||||
"View source|Ctrl+U
|
"Back|Ctrl+<
|
||||||
Edit source";
|
Forward|Ctrl+>
|
||||||
|
-
|
||||||
|
View source|Ctrl+U
|
||||||
|
Edit source|F2";
|
||||||
char main_menu[] =
|
char main_menu[] =
|
||||||
"Open local file...|Ctrl+O
|
"Open local file...|Ctrl+O
|
||||||
New window|Ctrl+N
|
New window|Ctrl+N
|
||||||
@@ -63,14 +69,14 @@ Open in new window
|
|||||||
Copy link
|
Copy link
|
||||||
Download link contents";
|
Download link contents";
|
||||||
char loading_text[] = "Loading...";
|
char loading_text[] = "Loading...";
|
||||||
char update_param[] = "-e http://builds.kolibrios.org/eng/data/programs/cmm/browser/WebView.com";
|
char update_param[] = "-e http://builds.kolibrios.org/en_US/data/programs/cmm/browser/WebView.com";
|
||||||
char update_download_error[] = "'WebView\nError receiving an up to date information!' -tE";
|
char update_download_error[] = "'WebView\nError receiving an up to date information!' -tE";
|
||||||
char update_ok[] = "'WebView\nThe browser has been updated!' -tO";
|
char update_ok[] = "'WebView\nThe browser has been updated!' -tO";
|
||||||
char update_is_current[] = "'WebView\nThe browser is up to date.' -tI";
|
char update_is_current[] = "'WebView\nThe browser is up to date.' -tI";
|
||||||
char update_can_not_copy[] = "'WebView\nError copying a new version from Downloads folder!\nProbably too litle space on Ramdisk.' -tE";
|
char update_can_not_copy[] = "'WebView\nError copying a new version from Downloads folder!\nProbably too litle space on Ramdisk.' -tE";
|
||||||
char clear_cache_ok[] = "'WebView\nThe cache has been cleared.' -tI";
|
char clear_cache_ok[] = "'WebView\nThe cache has been cleared.' -tI";
|
||||||
#define T_RENDERING "Rendering..."
|
#define T_RENDERING "Rendering..."
|
||||||
#define T_DONE_IN_SEC "Done in %i sec"
|
#define T_DONE_IN_SEC "Done in %i sec (%i milisec)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
@@ -83,7 +89,6 @@ char buildin_page_test[] = FROM "res/test.htm";
|
|||||||
|
|
||||||
#define URL_SERVICE_HISTORY "WebView:history"
|
#define URL_SERVICE_HISTORY "WebView:history"
|
||||||
#define URL_SERVICE_HOMEPAGE "WebView:home"
|
#define URL_SERVICE_HOMEPAGE "WebView:home"
|
||||||
#define URL_SERVICE_HELP "WebView:help"
|
|
||||||
#define URL_SERVICE_TEST "WebView:test"
|
#define URL_SERVICE_TEST "WebView:test"
|
||||||
|
|
||||||
char webview_shared[] = "WEBVIEW";
|
char webview_shared[] = "WEBVIEW";
|
||||||
@@ -91,12 +96,12 @@ char webview_shared[] = "WEBVIEW";
|
|||||||
enum {
|
enum {
|
||||||
NEW_TAB=600,
|
NEW_TAB=600,
|
||||||
ENCODINGS=700,
|
ENCODINGS=700,
|
||||||
BACK_BUTTON=800,
|
BACK_BUTTON=800, FORWARD_BUTTON, VIEW_SOURCE, EDIT_SOURCE,
|
||||||
FORWARD_BUTTON, REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING,
|
REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING,
|
||||||
SANDWICH_BUTTON, VIEW_SOURCE, EDIT_SOURCE, OPEN_FILE,
|
SANDWICH_BUTTON,
|
||||||
NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER, CLEAR_CACHE,
|
OPEN_FILE, NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER,
|
||||||
UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW, COPY_LINK_URL,
|
CLEAR_CACHE, UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW,
|
||||||
DOWNLOAD_LINK_CT, TAB_ID,
|
COPY_LINK_URL, DOWNLOAD_LINK_CT, TAB_ID,
|
||||||
TAB_CLOSE_ID = 900
|
TAB_CLOSE_ID = 900
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -107,4 +112,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
|
|||||||
|
|
||||||
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
|
||||||
|
|
||||||
char version[]="WebView 3.66-3";
|
char version[]="WebView 3.91";
|
@@ -1,7 +1,7 @@
|
|||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
#define HISTORY_HEADER "<html><title><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title><body><b><3E><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD></b><br>"
|
#define HISTORY_HEADER "<html><title><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title><body bgcolor=#fff><h3><3E><><EFBFBD><EFBFBD>饭<EFBFBD><E9A5AD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD></h3><br>"
|
||||||
#else
|
#else
|
||||||
#define HISTORY_HEADER "<html><title>History</title><body><b>Visited pages</b><br>"
|
#define HISTORY_HEADER "<html><title>History</title><body bgcolor=#fff><h3>Visited pages</h3><br>"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ ShowHistory()
|
|||||||
|
|
||||||
for (i=0; i<history.items.count-1; i++) //if (cache.type.get(i) == PAGE)
|
for (i=0; i<history.items.count-1; i++) //if (cache.type.get(i) == PAGE)
|
||||||
{
|
{
|
||||||
strcat(history_pointer, "<a href='");
|
strcat(history_pointer, "<kosicon n=3><a href='");
|
||||||
strcat(history_pointer, history.items.get(i));
|
strcat(history_pointer, history.items.get(i));
|
||||||
strcat(history_pointer, "'>");
|
strcat(history_pointer, "'>");
|
||||||
strcat(history_pointer, history.items.get(i));
|
strcat(history_pointer, history.items.get(i));
|
||||||
|
@@ -1,16 +1,49 @@
|
|||||||
<html>
|
<html><head><title>New tab</title></head>
|
||||||
<head>
|
<body bgcolor=#fff>
|
||||||
<title>Homepage</title>
|
|
||||||
</head>
|
|
||||||
<body><pre>Bookmarks:
|
|
||||||
1. <a href=//kolibrios.org>KolibriOS homepage</a>
|
|
||||||
2. <a href=//kolibri-n.org>KolibriN homepage</a>
|
|
||||||
3. <a href="//builds.kolibrios.org">Night-builds</a>
|
|
||||||
4. <a href="//store.kolibri-n.org">Kolibri Stuff</a>
|
|
||||||
|
|
||||||
<font bg=#F8F15B>By the way,</font>
|
<table><tr><td width=20><td width=220><pre>
|
||||||
|
_____________________
|
||||||
|
|# : : #|
|
||||||
|
| : WebView : |
|
||||||
|
| : for : |
|
||||||
|
| : KolibriOS : |
|
||||||
|
| : : |
|
||||||
|
| :_______________: |
|
||||||
|
| ____________ |
|
||||||
|
| | __ | |
|
||||||
|
| || | | |
|
||||||
|
\_____||__|________|__|<font color=#DDD>lc</font>
|
||||||
|
|
||||||
|
<font bg=#F8F15B> web <font bg=#FF5A7E color=#fff> 1.0 <font bg=#47D018> compatable
|
||||||
|
<font bg=#3CE7FF> </font></font></font></font>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
<kosicon n=58><a href=//kolibrios.org>Homepage</a>
|
||||||
|
<kosicon n=50><a href="//builds.kolibrios.org">Night-builds</a>
|
||||||
|
<kosicon n=50><a href="//ftp.kolibrios.org">FTP Server</a>
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
By the way,
|
||||||
<font color="#555555">• You can check for browser updates from the main menu.
|
<font color="#555555">• You can check for browser updates from the main menu.
|
||||||
• To run a web search, type a text in the adress box and press Ctrl+Enter.
|
• To run a web search, type a text in the adress box and press Ctrl+Enter.
|
||||||
• You can also use other <a href=WebView:help><font color=555555>Hotkeys</font></a>.
|
• Pressing F6 moves a text cursor to the omnibox.
|
||||||
• Click on a label in the bottom right corner to change the encoding of a page.
|
• You can manually change the encoding of a page by clicking on a label in the bottom right corner.
|
||||||
</font>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
~+
|
||||||
|
|
||||||
|
* +
|
||||||
|
' |
|
||||||
|
() .-.,="``"=. - o -
|
||||||
|
'=/_ \ |
|
||||||
|
* | '=._ |
|
||||||
|
\ `=./`, '
|
||||||
|
. '=.__.=' `=' *
|
||||||
|
+ +
|
||||||
|
O * ' .<font color=#DDD>jgs</font>
|
@@ -1,17 +1,49 @@
|
|||||||
<html>
|
<html><head><title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></title></head>
|
||||||
<head>
|
<body bgcolor=#fff>
|
||||||
<meta charset="cp-866">
|
|
||||||
<title><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD></title>
|
|
||||||
</head>
|
|
||||||
<body><pre><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|
||||||
1. <a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>࠭<EFBFBD><E0A0AD><EFBFBD> KolibriOS</a>
|
|
||||||
2. <a href=//kolibri-n.org>KolibriN10</a>
|
|
||||||
3. <a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a>
|
|
||||||
4. <a href="//store.kolibri-n.org">Kolibri Store</a>
|
|
||||||
|
|
||||||
<font bg=#F8F15B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,</font>
|
<table><tr><td width=20><td width=220><pre>
|
||||||
|
_____________________
|
||||||
|
|# : : #|
|
||||||
|
| : WebView : |
|
||||||
|
| : for : |
|
||||||
|
| : KolibriOS : |
|
||||||
|
| : : |
|
||||||
|
| :_______________: |
|
||||||
|
| ____________ |
|
||||||
|
| | __ | |
|
||||||
|
| || | | |
|
||||||
|
\_____||__|________|__|<font color=#DDD>lc</font>
|
||||||
|
|
||||||
|
<font bg=#F8F15B> web <font bg=#FF5A7E color=#fff> 1.0 <font bg=#47D018> compatable
|
||||||
|
<font bg=#3CE7FF> </font></font></font></font>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
<kosicon n=58><a href=//kolibrios.org><EFBFBD><EFBFBD><EFBFBD>樠<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᠩ<></a>
|
||||||
|
<kosicon n=50><a href="//builds.kolibrios.org"><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᡮન</a>
|
||||||
|
<kosicon n=50><a href="//ftp.kolibrios.org">FTP <20><>ࢥ<EFBFBD></a>
|
||||||
|
<pre>
|
||||||
|
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
<font color="#555555">• <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
<font color="#555555">• <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
• <20><><EFBFBD> <20><><EFBFBD>᪠ <20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter
|
• <20><><EFBFBD> <20><><EFBFBD>᪠ <20> Google <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>᭮<EFBFBD> <20><>ப<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ctrl+Enter
|
||||||
• <20><><EFBFBD><EFBFBD> ⠪<><E2A0AA> <20><>㣨<EFBFBD> <a href=WebView:help><font color=555555><EFBFBD><EFBFBD><EFBFBD><EFBFBD>稥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></a>.
|
• <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> F6 <20><>६<EFBFBD>頥<EFBFBD> ⥪<>⮢<EFBFBD><E2AEA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
• <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣫<> <20><><EFBFBD><EFBFBD>.
|
• <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> <20><>࠭<EFBFBD><E0A0AD><EFBFBD>, <20><><EFBFBD> <20>⮣<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>ࠢ<EFBFBD><E0A0A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣫<> <20><><EFBFBD><EFBFBD>.
|
||||||
</font>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
~+
|
||||||
|
|
||||||
|
* +
|
||||||
|
' |
|
||||||
|
() .-.,="``"=. - o -
|
||||||
|
'=/_ \ |
|
||||||
|
* | '=._ |
|
||||||
|
\ `=./`, '
|
||||||
|
. '=.__.=' `=' *
|
||||||
|
+ +
|
||||||
|
O * ' .<font color=#DDD>jgs</font>
|
@@ -2,40 +2,38 @@
|
|||||||
<title>TEST</title>
|
<title>TEST</title>
|
||||||
<style>a {display:block;font-size:130%;margin:5px 40px 5px 0;}</style>
|
<style>a {display:block;font-size:130%;margin:5px 40px 5px 0;}</style>
|
||||||
<body>
|
<body>
|
||||||
<pre>
|
|
||||||
<a href=//kolibrios.org>KolibriOS</a>
|
|
||||||
<a href=//kolibri-n.org>KolibriN10</a>
|
|
||||||
<a href=//store.kolibri-n.org>Kolibri Store</a>
|
|
||||||
|
|
||||||
<table><tr><td>Simplest:
|
<pre><h2>HTTP</h2>
|
||||||
<a href=//nostalgy.net.ru/>nostalgy.net.ru</a>
|
<a href=//th99.infania.net>Total Hardware 1999</a>
|
||||||
|
<a href=//wiby.org>wiby.org</a>
|
||||||
|
<a href=//menuetos.net>menuetos.net</a>
|
||||||
|
<a href=//macintosh.garden/>Macintosh Garden</a>
|
||||||
<a href=//pci-ids.ucw.cz>pci.ids</a>
|
<a href=//pci-ids.ucw.cz>pci.ids</a>
|
||||||
|
<a href=//toastytech.com/guis/index.html>GUI Gallery</a>
|
||||||
|
<a href=//www.weitek.com/textual/support/driver.html>weitek</a>
|
||||||
|
<a href=//www.abandonwarering.com/?Page=Listing>abandonware</a>
|
||||||
|
<a href=//neonfloppy.sytes.net/articles/win3-usb/>neonfloppy</a>
|
||||||
|
<a href=//www.win31.de/eindex.htm>win31.de</a>
|
||||||
|
|
||||||
|
<h3>VPN-only</h3>
|
||||||
<a href=//dgmag.in>dgmag.in</a>
|
<a href=//dgmag.in>dgmag.in</a>
|
||||||
<a href=//bash.im>bash.im</a>
|
<a href=//fdd5-25.pdp-11.ru>fdd5-25</a>
|
||||||
<a href=//opennet.ru>opennet</a>
|
<a href=//old-dos.ru>old-dos.ru</a>
|
||||||
<a href=//linux.org.ru>LOR</a>
|
<a href=//artcon.ru>artcon.ru</a>
|
||||||
<a href=//baravy.by/me/b.html>baravy.by/me/b.html</a>
|
<a href=//nubo.ru>nubo.ru</a>
|
||||||
<a href=//samlib.ru/b>samlib.ru/b</a>
|
|
||||||
<a href=//mirrors.pdp-11.ru>mirrors.pdp-11.ru</a>
|
<a href=//mirrors.pdp-11.ru>mirrors.pdp-11.ru</a>
|
||||||
<td>Simple:
|
<a href=//nostalgy.net.ru/>nostalgy.net.ru</a>
|
||||||
<a href=//lionovsky.us>lionovsky.us</a>
|
|
||||||
|
<h2>HTTPS :(</h2>
|
||||||
<a href=//os-menuet.narod.ru>os-menuet.narod.ru</a>
|
<a href=//os-menuet.narod.ru>os-menuet.narod.ru</a>
|
||||||
<a href=//mestack.narod.ru/index.html>mestack.narod.ru</a>
|
<a href=//mestack.narod.ru/index.html>mestack.narod.ru</a>
|
||||||
<a href=//coolthemes.narod.ru/indexold.html>coolthemes.narod.ru</a>
|
<a href=//coolthemes.narod.ru/indexold.html>coolthemes.narod.ru</a>
|
||||||
<a href=//vetusware.com>vetusware.com</a>
|
<a href=//lionovsky.us>lionovsky.us</a>
|
||||||
<a href=//th99.infania.net>Total Hardware 1999</a>
|
|
||||||
<a href=//toastytech.com/guis/index.html>GUI Gallery</a>
|
|
||||||
<a href=//menuetos.net>menuetos.net</a>
|
|
||||||
<tr><td>
|
|
||||||
Moderate:
|
|
||||||
<a href=//fdd5-25.pdp-11.ru>fdd5-25</a>
|
|
||||||
<a href=//acmp.ru/index.asp?main=tasks>acmp.ru</a>
|
<a href=//acmp.ru/index.asp?main=tasks>acmp.ru</a>
|
||||||
<a href=//old-dos.ru>old-dos.ru</a>
|
<a href=//xn--80abh7bk0c.xn--p1ai>bashorg</a>
|
||||||
<a href=//www.weitek.com/textual/support/driver.html>weitek</a>
|
<a href=//opennet.ru>opennet</a>
|
||||||
<a href=//www.abandonwarering.com/?Page=Listing>abandonware</a>
|
<a href=//linux.org.ru>LOR</a>
|
||||||
<td>Complex:
|
<a href=//www.xlr8yourmac.com/OSX/os_x_network_cards.html>OSX network cards</a>
|
||||||
<a href=//artcon.ru>artcon.ru</a>
|
<a href=//samlib.ru/b>samlib.ru/b</a>
|
||||||
<a href=//nubo.ru>nubo.ru</a>
|
<a href=//vetusware.com>vetusware.com</a>
|
||||||
<a href=//salinc.ru>salinc.ru</a>
|
|
||||||
<a href=//electromyne.de>electromyne.de</a>
|
<a href=//electromyne.de>electromyne.de</a>
|
||||||
<a href=//www.thg.ru/graphic/25year_ati_history>tom's hardware</a>
|
|
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
#define TABS_MAX 5
|
#define TABS_MAX 5
|
||||||
|
|
||||||
TWebBrowser tabdata[TABS_MAX+1]=0;
|
TWebBrowser tabdata[TABS_MAX+1];
|
||||||
_history tabstory[TABS_MAX+1]=0;
|
_history tabstory[TABS_MAX+1];
|
||||||
|
|
||||||
struct TAB
|
struct TAB
|
||||||
{
|
{
|
||||||
|
@@ -5,12 +5,19 @@
|
|||||||
<title>Тест Acid 0.1</title>
|
<title>Тест Acid 0.1</title>
|
||||||
</head>
|
</head>
|
||||||
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF">
|
<body bgcolor="#000000" link="#0066FF" text="#FFFFFF">
|
||||||
<h1 align=center>Это тестовая страница для проверки WebViewer</h1>
|
<h1 align=center>Тест Acid 0.1</h1>
|
||||||
<br />
|
<br>
|
||||||
<p>WebViewer является текстовым браузером и поддерживает все популярные кодировки (cp1251, koi-8, cp866, unicode)
|
<b>Это тестовая страница для проверки текстового браузера <s>HTML Viewer</s> WebView</b>
|
||||||
и некоторые теги. Поддержка таблииц (<table>), CSS, Javascript'a и Контактика пока не реализована :)
|
|
||||||
|
<p>Из кодировок поддерживаются: CP866(DOS), CP1251(Windows), CP1252(Latin legacy), KOI8, и конечно UTF8. CSS и Javascript пока не реализованы (ахахаха). Поддержка тега <table> крайне базовая, поддержки вложенных таблиц нет.
|
||||||
</p>
|
</p>
|
||||||
<br />
|
|
||||||
|
<h3>История</h3>
|
||||||
|
|
||||||
|
Ранее программа называлась <b >HTMLv (HTML Viewer)</b> и изначально задумывалась как <q>Центр справки и поддержки</q>. Чтобы не изобретать велосипед и одновременно исполнить мечту многих, форматом просматриваемых страниц был выбран html.
|
||||||
|
Первоначальный автор Veliant, затем разработка была подхвачена дизайнером Leency. Это была моя вторая программа после файлового менеджера Eolite.<br>
|
||||||
|
|
||||||
|
<span> <br />
|
||||||
|
|
||||||
<b>
|
<b>
|
||||||
<font color="#FF0000">K</font>
|
<font color="#FF0000">K</font>
|
||||||
@@ -33,7 +40,8 @@
|
|||||||
</b>
|
</b>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<p>
|
<table>
|
||||||
|
<td>
|
||||||
<bg bgcolor=#333>
|
<bg bgcolor=#333>
|
||||||
Небольшой список:<ol>
|
Небольшой список:<ol>
|
||||||
<li><q>Этот текст в кавычках</q></li>
|
<li><q>Этот текст в кавычках</q></li>
|
||||||
@@ -46,17 +54,14 @@
|
|||||||
</p>
|
</p>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<pre>
|
|
||||||
"Осень уже пришла!"-
|
|
||||||
Шепнул мне на ухо ветер,
|
|
||||||
Подкравшись к подушке моей.
|
|
||||||
|
|
||||||
Басе
|
|
||||||
</pre>
|
|
||||||
<!-- комментарий: этого текста здесь <нет> -->
|
<!-- комментарий: этого текста здесь <нет> -->
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
<img alt="нет картинки, просто alt">
|
||||||
|
|
||||||
|
<img src = http://wiby.org/about/wibyplex.gif>
|
||||||
|
|
||||||
<a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Открыть</a><br>
|
<a href="http://kolibrios.org/i/logo.png"><img id="2.1.4" src="http://kolibrios.org/i/logo.png" alt="logo"><br>Открыть</a><br>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@@ -65,10 +70,25 @@
|
|||||||
<a href='/sys/index.htm'>Незакрытый тег а - index.htm<br>
|
<a href='/sys/index.htm'>Незакрытый тег а - index.htm<br>
|
||||||
<a href="/sys/calc">/sys/calc</a><br>
|
<a href="/sys/calc">/sys/calc</a><br>
|
||||||
<a href="#2.1.4">#2.1.4</a><br>
|
<a href="#2.1.4">#2.1.4</a><br>
|
||||||
<a href="http://bash.im">http://bash.im</a><br>
|
<a href="http://kolibrios.org">http://kolibrios.org</a><br>
|
||||||
<a href="mailto:leency@mail.ru">Mail to Leency</a><br>
|
<a href="mailto:leency@mail.ru">Mail to Leency</a><br>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
|
||||||
|
<h1><a href=#>Link H1</a> <u>Underline H1</u></h1>
|
||||||
|
<h2><a href=#>Link H2</a> <u>Underline H2</u></h2>
|
||||||
|
<h3><a href=#>Link H3</a> <u>Underline H2</u></h3>
|
||||||
|
<a href=#>Link</a> <u>Underline</u>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
"Осень уже пришла!"-
|
||||||
|
Шепнул мне на ухо ветер,
|
||||||
|
Подкравшись к подушке моей.
|
||||||
|
|
||||||
|
Басе
|
||||||
|
|
||||||
|
</pre><br>
|
||||||
|
|
||||||
В этом тексте есть переход на следующую строку, но браузер
|
В этом тексте есть переход на следующую строку, но браузер
|
||||||
его должен проигнорировать. Еще много пробелов. А тут есть
|
его должен проигнорировать. Еще много пробелов. А тут есть
|
||||||
@@ -80,8 +100,19 @@
|
|||||||
корпус на территории НТУ «ХПИ»
|
корпус на территории НТУ «ХПИ»
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<pre><font color="#000">
|
||||||
|
<font bg=#FFED00 style="background-color:#FFED00"> Заметки </font>
|
||||||
|
<font bg=#FFFBCE style="background-color:#FFFBCE"> </font>
|
||||||
|
<font bg=#FFFBCE style="background-color:#FFFBCE"> Речка на Жукова </font>
|
||||||
|
<font bg=#FFFBCE style="background-color:#FFFBCE"> Heroes 3 </font>
|
||||||
|
<font bg=#FFFBCE style="background-color:#FFFBCE"> Рисостерон, куринабол </font>
|
||||||
|
<font bg=#FFFBCE style="background-color:#FFFBCE"> </font>
|
||||||
|
</font></pre>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
<hr color="#758999">
|
<hr color="#758999">
|
||||||
<center>Zhitomyr 2008-2015</center>
|
<center>Zhytomyr 2008-2025</center>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
@@ -17,8 +17,10 @@
|
|||||||
#define T_STATUS_DL_P2 " M<> <20><><EFBFBD><EFBFBD>祭<EFBFBD> ("
|
#define T_STATUS_DL_P2 " M<> <20><><EFBFBD><EFBFBD>祭<EFBFBD> ("
|
||||||
#define T_STATUS_DL_P3 " K<>/<EFBFBD>) "
|
#define T_STATUS_DL_P3 " K<>/<EFBFBD>) "
|
||||||
|
|
||||||
#define FILE_SAVED_AS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> %s' -Dt"
|
#define T_ERROR_TOO_MANY_REDIRECTS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD>誮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ।<EFBFBD>४⮢ (HTTP 3XX)' -Et"
|
||||||
#define FILE_NOT_SAVED "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<>訡<EFBFBD><E8A8A1>! <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD>\n%s' -Et"
|
|
||||||
|
#define T_FILE_SAVED_AS "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<><6E><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD> %s' -Dt"
|
||||||
|
#define T_FILE_NOT_SAVED "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮<EFBFBD>\n<>訡<EFBFBD><E8A8A1>! <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>࠭<EFBFBD><E0A0AD> <20><><EFBFBD>\n%s' -Et"
|
||||||
#define T_ERROR_STARTING_DOWNLOAD "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠稢<E1AAA0><E7A8A2><EFBFBD><EFBFBD>.\n<><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⮬.' -E"
|
#define T_ERROR_STARTING_DOWNLOAD "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᪠稢<E1AAA0><E7A8A2><EFBFBD><EFBFBD>.\n<><EFBFBD><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ᮥ<><E1AEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>⮬.' -E"
|
||||||
char accept_language[]= "Accept-Language: ru\n";
|
char accept_language[]= "Accept-Language: ru\n";
|
||||||
#else
|
#else
|
||||||
@@ -38,8 +40,10 @@
|
|||||||
#define T_STATUS_DL_P2 " MB received ("
|
#define T_STATUS_DL_P2 " MB received ("
|
||||||
#define T_STATUS_DL_P3 " KB/s) "
|
#define T_STATUS_DL_P3 " KB/s) "
|
||||||
|
|
||||||
#define FILE_SAVED_AS "'Download manager\nFile saved as %s' -Dt"
|
#define T_ERROR_TOO_MANY_REDIRECTS "'Download manager\nToo many redirects' -Et"
|
||||||
#define FILE_NOT_SAVED "'Download manager\nError! Can\96t save file as %s' -Et"
|
|
||||||
|
#define T_FILE_SAVED_AS "'Download manager\nFile saved as %s' -Dt"
|
||||||
|
#define T_FILE_NOT_SAVED "'Download manager\nError! Can\96t save file as %s' -Et"
|
||||||
#define T_ERROR_STARTING_DOWNLOAD "'Error while starting download process.\nCheck entered path and Internet connection.' -E"
|
#define T_ERROR_STARTING_DOWNLOAD "'Error while starting download process.\nCheck entered path and Internet connection.' -E"
|
||||||
char accept_language[]= "Accept-Language: en\n";
|
char accept_language[]= "Accept-Language: en\n";
|
||||||
#endif
|
#endif
|
||||||
|
@@ -11,6 +11,8 @@ bool open_file = false;
|
|||||||
|
|
||||||
dword speed;
|
dword speed;
|
||||||
|
|
||||||
|
int redirect_count;
|
||||||
|
|
||||||
_http http;
|
_http http;
|
||||||
|
|
||||||
checkbox autoclose = { T_AUTOCLOSE, false };
|
checkbox autoclose = { T_AUTOCLOSE, false };
|
||||||
@@ -228,6 +230,7 @@ void InitDownload()
|
|||||||
pb.progress_color = PB_COL_PROGRESS;
|
pb.progress_color = PB_COL_PROGRESS;
|
||||||
filepath = '\0';
|
filepath = '\0';
|
||||||
active_status = T_STATUS_READY;
|
active_status = T_STATUS_READY;
|
||||||
|
redirect_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonitorProgress()
|
void MonitorProgress()
|
||||||
@@ -241,6 +244,13 @@ void MonitorProgress()
|
|||||||
DrawDownloadingProgress();
|
DrawDownloadingProgress();
|
||||||
} else {
|
} else {
|
||||||
if (http.status_code >= 300) && (http.status_code < 400) {
|
if (http.status_code >= 300) && (http.status_code < 400) {
|
||||||
|
redirect_count++;
|
||||||
|
if (redirect_count >= 5) {
|
||||||
|
notify(T_ERROR_TOO_MANY_REDIRECTS);
|
||||||
|
ProcessButtonClick(BTN_STOP);
|
||||||
|
EditBox_UpdateText(#ed, ed_focus + ed_always_focus);
|
||||||
|
return;
|
||||||
|
}
|
||||||
http.header_field("location", #redirect_url, URL_SIZE);
|
http.header_field("location", #redirect_url, URL_SIZE);
|
||||||
get_absolute_url(#redirect_url, #uEdit);
|
get_absolute_url(#redirect_url, #uEdit);
|
||||||
edit_box_set_text stdcall (#ed, #redirect_url);
|
edit_box_set_text stdcall (#ed, #redirect_url);
|
||||||
@@ -307,9 +317,9 @@ void SaveFile(int attempt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (CreateFile(http.content_received, http.content_pointer, #filepath)==0) {
|
if (CreateFile(http.content_received, http.content_pointer, #filepath)==0) {
|
||||||
miniprintf(#notify_message, FILE_SAVED_AS, #filepath);
|
miniprintf(#notify_message, T_FILE_SAVED_AS, #filepath);
|
||||||
} else {
|
} else {
|
||||||
miniprintf(#notify_message, FILE_NOT_SAVED, #filepath);
|
miniprintf(#notify_message, T_FILE_NOT_SAVED, #filepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!autoclose.checked) notify(#notify_message);
|
if (!autoclose.checked) notify(#notify_message);
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
//Leency, Veliant, Punk_Joker, PavelYakov & KolibriOS Team 2008-2022
|
//Leency, Veliant, Punk_Joker, PavelYakov & KolibriOS Team 2008-2025
|
||||||
//GNU GPL license.
|
//GNU GPL license.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
BUGS:
|
BUGS:
|
||||||
- F1 in KFM (move Properties to an external app)
|
|
||||||
- Ctrl+1+2+3+4 in KFM
|
- Ctrl+1+2+3+4 in KFM
|
||||||
- Highlight another commands on Ctrl|Shift in KFM like in Classic KFM
|
- Highlight another commands on Ctrl|Shift in KFM like in Classic KFM
|
||||||
TODO:
|
TODO:
|
||||||
@@ -11,9 +10,9 @@ TODO:
|
|||||||
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
http://board.kolibrios.org/viewtopic.php?f=23&t=4521&p=77334#p77334
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ABOUT_TITLE "EOLITE 5.26a"
|
#define ABOUT_TITLE "Eolite 5.32"
|
||||||
#define TITLE_EOLITE "Eolite File Manager 5.26a"
|
#define TITLE_EOLITE "Eolite File Manager 5.32"
|
||||||
#define TITLE_KFM "Kolibri File Manager 2.26a";
|
#define TITLE_KFM "Kolibri File Manager 2.32";
|
||||||
|
|
||||||
#define MEMSIZE 1024 * 250
|
#define MEMSIZE 1024 * 250
|
||||||
#include "../lib/clipboard.h"
|
#include "../lib/clipboard.h"
|
||||||
@@ -26,12 +25,15 @@ TODO:
|
|||||||
#include "../lib/kfont.h"
|
#include "../lib/kfont.h"
|
||||||
#include "../lib/collection.h"
|
#include "../lib/collection.h"
|
||||||
#include "../lib/copyf.h"
|
#include "../lib/copyf.h"
|
||||||
|
#include "../lib/dll.h"
|
||||||
|
|
||||||
#include "../lib/obj/libini.h"
|
#include "../lib/obj/libini.h"
|
||||||
#include "../lib/obj/box_lib.h"
|
#include "../lib/obj/box_lib.h"
|
||||||
#include "../lib/obj/libimg.h"
|
#include "../lib/obj/libimg.h"
|
||||||
|
#include "../lib/obj/proc_lib.h"
|
||||||
|
|
||||||
#include "../lib/patterns/history.h"
|
#include "../lib/patterns/history.h"
|
||||||
|
#include "../lib/patterns/select_list.h"
|
||||||
|
|
||||||
#include "imgs/images.h"
|
#include "imgs/images.h"
|
||||||
#include "include/const.h"
|
#include "include/const.h"
|
||||||
@@ -110,6 +112,8 @@ edit_box popin_text = {200,213,180,0xFFFFFF,0x94AECE,0xFFFFFF,0xFFFFFF,0x1000000
|
|||||||
|
|
||||||
PathShow_data FileShow = {0, 56,215, 8, 100, 1, 0, 0x0, 0xFFFfff, #file_name, #temp, 0};
|
PathShow_data FileShow = {0, 56,215, 8, 100, 1, 0, 0x0, 0xFFFfff, #file_name, #temp, 0};
|
||||||
|
|
||||||
|
_ini icons_ini = { "/sys/File managers/icons.ini", NULL };
|
||||||
|
|
||||||
#include "include\settings.h"
|
#include "include\settings.h"
|
||||||
#include "include\gui.h"
|
#include "include\gui.h"
|
||||||
#include "include\progress_dialog.h"
|
#include "include\progress_dialog.h"
|
||||||
@@ -121,6 +125,8 @@ PathShow_data FileShow = {0, 56,215, 8, 100, 1, 0, 0x0, 0xFFFfff, #file_name, #t
|
|||||||
#include "include\about.h"
|
#include "include\about.h"
|
||||||
#include "include\properties.h"
|
#include "include\properties.h"
|
||||||
|
|
||||||
|
#include "search.c"
|
||||||
|
|
||||||
void handle_param()
|
void handle_param()
|
||||||
{
|
{
|
||||||
//-p <path> : just show file/folder properties dialog
|
//-p <path> : just show file/folder properties dialog
|
||||||
@@ -146,6 +152,14 @@ void handle_param()
|
|||||||
|
|
||||||
if (ESBYTE[p]=='\0') return;
|
if (ESBYTE[p]=='\0') return;
|
||||||
|
|
||||||
|
if (ESBYTE[p]=='\\') switch (ESBYTE[p+1])
|
||||||
|
{
|
||||||
|
case 's':
|
||||||
|
strcpy(path, p + 3);
|
||||||
|
SearchThread();
|
||||||
|
ExitProcess();
|
||||||
|
}
|
||||||
|
|
||||||
if (ESBYTE[p]=='-') switch (ESBYTE[p+1])
|
if (ESBYTE[p]=='-') switch (ESBYTE[p+1])
|
||||||
{
|
{
|
||||||
case 'p':
|
case 'p':
|
||||||
@@ -195,6 +209,8 @@ void main()
|
|||||||
|
|
||||||
handle_param();
|
handle_param();
|
||||||
|
|
||||||
|
kfont.init(DEFAULT_FONT);
|
||||||
|
|
||||||
SystemDiscs.Get();
|
SystemDiscs.Get();
|
||||||
OpenDir(ONLY_OPEN);
|
OpenDir(ONLY_OPEN);
|
||||||
llist_copy(#files_inactive, #files);
|
llist_copy(#files_inactive, #files);
|
||||||
@@ -239,6 +255,7 @@ void main()
|
|||||||
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
||||||
EventChooseFilesRange(old_cur_y, files.cur_y);
|
EventChooseFilesRange(old_cur_y, files.cur_y);
|
||||||
} else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
} else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
||||||
|
if (!getSelectedCount()) EventChooseFile(old_cur_y);
|
||||||
EventChooseFile(files.cur_y);
|
EventChooseFile(files.cur_y);
|
||||||
DrawStatusBar();
|
DrawStatusBar();
|
||||||
List_ReDraw();
|
List_ReDraw();
|
||||||
@@ -426,6 +443,9 @@ void main()
|
|||||||
}
|
}
|
||||||
EventDriveClick(key_scancode);
|
EventDriveClick(key_scancode);
|
||||||
break;
|
break;
|
||||||
|
case SCAN_CODE_KEY_P:
|
||||||
|
EventCopyItemPath();
|
||||||
|
break;
|
||||||
case SCAN_CODE_KEY_X:
|
case SCAN_CODE_KEY_X:
|
||||||
CopyFilesListToClipboard(CUT);
|
CopyFilesListToClipboard(CUT);
|
||||||
break;
|
break;
|
||||||
@@ -435,6 +455,9 @@ void main()
|
|||||||
case SCAN_CODE_KEY_G:
|
case SCAN_CODE_KEY_G:
|
||||||
EventOpenConsoleHere();
|
EventOpenConsoleHere();
|
||||||
break;
|
break;
|
||||||
|
case SCAN_CODE_KEY_F:
|
||||||
|
EventOpenSearch();
|
||||||
|
break;
|
||||||
case SCAN_CODE_KEY_V:
|
case SCAN_CODE_KEY_V:
|
||||||
EventPaste(path);
|
EventPaste(path);
|
||||||
break;
|
break;
|
||||||
@@ -539,16 +562,13 @@ void draw_window()
|
|||||||
incn x;
|
incn x;
|
||||||
dword title;
|
dword title;
|
||||||
static int rand_n;
|
static int rand_n;
|
||||||
if (!rand_n) rand_n = random(80);
|
if (!rand_n) && (Form.width + 1 != screen.w) rand_n = random(80);
|
||||||
|
|
||||||
if (show_status_bar.checked) {
|
|
||||||
#define STBAR_EOLITE_H 16
|
#define STBAR_EOLITE_H 16
|
||||||
#define STBAR_KFM_H 21
|
#define STBAR_KFM_H 21
|
||||||
if (efm) status_bar_h = STBAR_KFM_H;
|
if (efm) status_bar_h = STBAR_KFM_H;
|
||||||
else status_bar_h = STBAR_EOLITE_H;
|
else status_bar_h = STBAR_EOLITE_H;
|
||||||
} else {
|
|
||||||
status_bar_h = 0;
|
|
||||||
}
|
|
||||||
if (efm) title = TITLE_KFM; else title = TITLE_EOLITE;
|
if (efm) title = TITLE_KFM; else title = TITLE_EOLITE;
|
||||||
DefineAndDrawWindow(Form.left+rand_n,Form.top+rand_n,Form.width,Form.height,0x73,NULL,title,0);
|
DefineAndDrawWindow(Form.left+rand_n,Form.top+rand_n,Form.width,Form.height,0x73,NULL,title,0);
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
@@ -596,7 +616,7 @@ void draw_window()
|
|||||||
}
|
}
|
||||||
//main rectangles
|
//main rectangles
|
||||||
DrawRectangle(1,40,Form.cwidth-3,Form.cheight - 42-status_bar_h,sc.line);
|
DrawRectangle(1,40,Form.cwidth-3,Form.cheight - 42-status_bar_h,sc.line);
|
||||||
DrawBar(0,39,1,-show_status_bar.checked*status_bar_h + Form.cheight - 40, sc.work);
|
DrawBar(0,39,1,-status_bar_h + Form.cheight - 40, sc.work);
|
||||||
EBX = Form.cwidth-1 * 65536 + 1;
|
EBX = Form.cwidth-1 * 65536 + 1;
|
||||||
$int 64
|
$int 64
|
||||||
for (i=0; i<6; i++) DrawBar(0, 34+i, Form.cwidth, 1, MixColors(sc.dark, sc.work, i*10));
|
for (i=0; i<6; i++) DrawBar(0, 34+i, Form.cwidth, 1, MixColors(sc.dark, sc.work, i*10));
|
||||||
@@ -651,17 +671,13 @@ void DrawStatusBar()
|
|||||||
{
|
{
|
||||||
char status_bar_str[80];
|
char status_bar_str[80];
|
||||||
int go_up_folder_exists=0;
|
int go_up_folder_exists=0;
|
||||||
dword topcolor;
|
DrawBar(0, Form.cheight - status_bar_h-1, Form.cwidth, 1, sc.light);
|
||||||
|
|
||||||
if (show_status_bar.checked) topcolor=sc.light; else topcolor=sc.work;
|
|
||||||
DrawBar(0, Form.cheight - status_bar_h-1, Form.cwidth, 1, topcolor);
|
|
||||||
|
|
||||||
if (efm) {
|
if (efm) {
|
||||||
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, 2, sc.work);
|
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, 2, sc.work);
|
||||||
DrawBar(0, Form.cheight - 2, Form.cwidth, 2, EDX);
|
DrawBar(0, Form.cheight - 2, Form.cwidth, 2, EDX);
|
||||||
DrawBar(Form.cwidth-1, Form.cheight - 19, 1, 17, EDX);
|
DrawBar(Form.cwidth-1, Form.cheight - 19, 1, 17, EDX);
|
||||||
DrawFuncButtonsInKfm();
|
DrawFuncButtonsInKfm();
|
||||||
} else if (show_status_bar.checked) {
|
} else {
|
||||||
if (files.count>0) && (streq(items.get(0)*304+buf+72,"..")) go_up_folder_exists=1;
|
if (files.count>0) && (streq(items.get(0)*304+buf+72,"..")) go_up_folder_exists=1;
|
||||||
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work);
|
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work);
|
||||||
sprintf(#status_bar_str, T_STATUS_EVEMENTS, folder_count-go_up_folder_exists, files.count-folder_count);
|
sprintf(#status_bar_str, T_STATUS_EVEMENTS, folder_count-go_up_folder_exists, files.count-folder_count);
|
||||||
@@ -702,7 +718,7 @@ void DrawFilePanels()
|
|||||||
DrawButtonsAroundList();
|
DrawButtonsAroundList();
|
||||||
path = location[active_panel^1];
|
path = location[active_panel^1];
|
||||||
active_panel ^= 1;
|
active_panel ^= 1;
|
||||||
OpenDir2(WITH_REDRAW);
|
OpenDir_without_unselect(WITH_REDRAW);
|
||||||
active_panel ^= 1;
|
active_panel ^= 1;
|
||||||
if (!getSelectedCount()) files_inactive.count = files.count;
|
if (!getSelectedCount()) files_inactive.count = files.count;
|
||||||
llist_copy(#files, #files_active);
|
llist_copy(#files, #files_active);
|
||||||
@@ -715,38 +731,22 @@ void DrawFilePanels()
|
|||||||
|
|
||||||
DrawButtonsAroundList();
|
DrawButtonsAroundList();
|
||||||
path = location[active_panel];
|
path = location[active_panel];
|
||||||
OpenDir2(WITH_REDRAW);
|
OpenDir_without_unselect(WITH_REDRAW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenDir2(char redraw){
|
|
||||||
if (buf) free(buf);
|
|
||||||
if (GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
|
||||||
Write_Error(EAX);
|
|
||||||
history.add(path);
|
|
||||||
EventHistoryGoBack();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SetCurDir(path);
|
|
||||||
if (files.count>0) && (files.cur_y-files.first==-1) files.cur_y=0;
|
|
||||||
files.visible = math.min(files.h / files.item_h, files.count);
|
|
||||||
if (!strncmp(path, "/rd/1",5)) || (!strncmp(path, "/sys/",4))
|
|
||||||
dir_at_fat16 = true; else dir_at_fat16 = false;
|
|
||||||
Sorting();
|
|
||||||
SystemDiscs.Draw();
|
|
||||||
list_full_redraw = true;
|
|
||||||
List_ReDraw();
|
|
||||||
DrawPathBar();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void OpenDir(char redraw) {
|
void OpenDir(char redraw) {
|
||||||
int errornum;
|
|
||||||
unselectAll();
|
unselectAll();
|
||||||
|
OpenDir_without_unselect(redraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OpenDir_without_unselect(char redraw) {
|
||||||
|
int errornum;
|
||||||
|
|
||||||
if (buf) free(buf);
|
if (buf) free(buf);
|
||||||
if (errornum = GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
if (errornum = GetDir(#buf, #files.count, path, DIRS_NOROOT)) {
|
||||||
history.add(path);
|
history.add(path);
|
||||||
//EventHistoryGoBack();
|
|
||||||
Dir_Up();
|
Dir_Up();
|
||||||
Write_Error(errornum);
|
Write_Error(errornum);
|
||||||
return;
|
return;
|
||||||
@@ -1041,7 +1041,6 @@ void EventHistoryGoForward()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ShowOpenWithDialog()
|
void ShowOpenWithDialog()
|
||||||
{
|
{
|
||||||
byte open_param[4097];
|
byte open_param[4097];
|
||||||
@@ -1115,7 +1114,6 @@ void EventClosePopinForm()
|
|||||||
void ShowPopinForm(byte _popin_type)
|
void ShowPopinForm(byte _popin_type)
|
||||||
{
|
{
|
||||||
int popinx;
|
int popinx;
|
||||||
popin_string[0] = -1;
|
|
||||||
switch(_popin_type) {
|
switch(_popin_type) {
|
||||||
case POPIN_PATH:
|
case POPIN_PATH:
|
||||||
edit_box_set_text stdcall (#popin_text, path);
|
edit_box_set_text stdcall (#popin_text, path);
|
||||||
@@ -1130,11 +1128,13 @@ void ShowPopinForm(byte _popin_type)
|
|||||||
DrawEolitePopup(T_CREATE, T_CANCEL);
|
DrawEolitePopup(T_CREATE, T_CANCEL);
|
||||||
break;
|
break;
|
||||||
case POPIN_RENAME:
|
case POPIN_RENAME:
|
||||||
|
if (itdir) && (streq(#file_name,"..")) return;
|
||||||
edit_box_set_text stdcall (#popin_text, #file_name);
|
edit_box_set_text stdcall (#popin_text, #file_name);
|
||||||
DrawEolitePopup(T_RENAME, T_CANCEL);
|
DrawEolitePopup(T_RENAME, T_CANCEL);
|
||||||
break;
|
break;
|
||||||
case POPIN_DELETE:
|
case POPIN_DELETE:
|
||||||
if (!files.count) return;
|
if (!files.count) return;
|
||||||
|
popin_string[0] = -1;
|
||||||
if (!getSelectedCount()) && (!strncmp(#file_name,"..",2)) return;
|
if (!getSelectedCount()) && (!strncmp(#file_name,"..",2)) return;
|
||||||
popinx = DrawEolitePopup(T_YES, T_NO);
|
popinx = DrawEolitePopup(T_YES, T_NO);
|
||||||
WriteTextCenter(popinx, 178, POPIN_W, sc.work_text, T_DELETE_FILE);
|
WriteTextCenter(popinx, 178, POPIN_W, sc.work_text, T_DELETE_FILE);
|
||||||
@@ -1187,7 +1187,7 @@ void FnProcess(byte N)
|
|||||||
if (files.count) ShowPopinForm(POPIN_RENAME);
|
if (files.count) ShowPopinForm(POPIN_RENAME);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (files.count) && (!itdir) RunProgram("/kolibrios/utils/quark", #file_path);
|
if (files.count) && (!itdir) RunProgram("/sys/develop/heed", #file_path);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (files.count) && (!itdir) RunProgram("/sys/develop/cedit", #file_path);
|
if (files.count) && (!itdir) RunProgram("/sys/develop/cedit", #file_path);
|
||||||
@@ -1326,6 +1326,18 @@ void EventOpenConsoleHere()
|
|||||||
RunProgram("/sys/shell", #param);
|
RunProgram("/sys/shell", #param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventOpenSearch()
|
||||||
|
{
|
||||||
|
sprintf(#param, "\\s %s", path);
|
||||||
|
RunProgram(#program_path, #param);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EventCopyItemPath()
|
||||||
|
{
|
||||||
|
Clipboard__CopyText(#file_path);
|
||||||
|
}
|
||||||
|
|
||||||
void ProceedMouseGestures()
|
void ProceedMouseGestures()
|
||||||
{
|
{
|
||||||
char stats;
|
char stats;
|
||||||
|
@@ -1,16 +1,8 @@
|
|||||||
if tup.getconfig("NO_CMM") ~= "" then return end
|
if tup.getconfig("NO_CMM") ~= "" then return end
|
||||||
if tup.getconfig("NO_TCC") ~= "" then return end
|
|
||||||
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../.." or tup.getconfig("HELPERDIR")
|
|
||||||
tup.include(HELPERDIR .. "/use_tcc.lua")
|
|
||||||
|
|
||||||
if tup.getconfig("LANG") == "ru_RU"
|
if tup.getconfig("LANG") == "ru_RU"
|
||||||
then C_LANG = "LANG_RUS"
|
then C_LANG = "LANG_RUS"
|
||||||
else C_LANG = "LANG_ENG" -- this includes default case without config
|
else C_LANG = "LANG_ENG" -- this includes default case without config
|
||||||
end
|
end
|
||||||
|
|
||||||
LFLAGS = LFLAGS .. " -stack=20480"
|
tup.rule("Eolite.c", "c-- /D=$(C_LANG) /OPATH=%o %f" .. tup.getconfig("KPACK_CMD"), "Eolite.com")
|
||||||
LIBS += " ../../develop/ktcc/trunk/bin/lib/tiny.o -nostdlib -lbox_lib -lini -limg"
|
|
||||||
|
|
||||||
tup.rule("Eolite.c", "c-- -coff /D=" .. C_LANG .. " /OPATH=%o %f", "%B.obj")
|
|
||||||
tup.rule("Eolite.obj", "objconv -felf32 %f %o", "%B.o")
|
|
||||||
link_tcc("Eolite.o", "%B.com")
|
|
||||||
|
@@ -42,7 +42,7 @@ void about_dialog()
|
|||||||
about_x = -strlen(ABOUT_TITLE)*18+about_form.cwidth/2;
|
about_x = -strlen(ABOUT_TITLE)*18+about_form.cwidth/2;
|
||||||
WriteTextB(about_x+2,107,0x82,0xD49CD2,ABOUT_TITLE);
|
WriteTextB(about_x+2,107,0x82,0xD49CD2,ABOUT_TITLE);
|
||||||
WriteTextB(about_x,105,0x82,0x9D129D,ABOUT_TITLE);
|
WriteTextB(about_x,105,0x82,0x9D129D,ABOUT_TITLE);
|
||||||
WriteTextLines(73,163,0x90,sc.work_text," By Leency\nand KolibriOS Team\n 2008-2021",20);
|
WriteTextLines(73,163,0x90,sc.work_text," By Leency\nand KolibriOS Team\n 2008-2025",20);
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
DrawStandartCaptButton(60,about_form.cheight-38,11,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧࠡ<E0A0A7>⪨");
|
DrawStandartCaptButton(60,about_form.cheight-38,11,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧࠡ<E0A0A7>⪨");
|
||||||
#endif
|
#endif
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
char *kfm_func = {
|
char *kfm_func = {
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD>.",
|
"<EFBFBD><EFBFBD>२<EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD>ᬮ<EFBFBD><EFBFBD>",
|
"HEX-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
"<EFBFBD><EFBFBD>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
"<EFBFBD><EFBFBD>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||||
@@ -86,9 +86,9 @@ char *actions[] = {
|
|||||||
|
|
||||||
#define TITLE_SETT "<22><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9>"
|
#define TITLE_SETT "<22><><EFBFBD><EFBFBD>ன<EFBFBD><E0AEA9>"
|
||||||
#define SHOW_DEVICE_CLASS "<22>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD>"
|
#define SHOW_DEVICE_CLASS "<22>뢮<EFBFBD><EBA2AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD>"
|
||||||
#define SHOW_STATUS_BAR "<22><><EFBFBD><EFBFBD><EFBFBD>뢠<EFBFBD><EBA2A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>"
|
|
||||||
#define BIG_ICONS "<22>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
#define BIG_ICONS "<22>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訥 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define COLORED_LINES "<22><><EFBFBD>ᢥ稢<E1A2A5><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ᯨ᪥"
|
#define COLORED_LINES "<22><><EFBFBD>ᢥ稢<E1A2A5><E7A8A2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ᯨ᪥"
|
||||||
|
#define FONT_BOLD "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define FONT_SIZE_LABEL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
#define FONT_SIZE_LABEL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
#define LIST_LINE_HEIGHT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᯨ᪥"
|
#define LIST_LINE_HEIGHT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ப<EFBFBD> <20> ᯨ᪥"
|
||||||
#define SAVE_PATH_AS_DEFAULT "<22><><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD>"
|
#define SAVE_PATH_AS_DEFAULT "<22><><EFBFBD><EFBFBD>騩 <20><><EFBFBD><EFBFBD>"
|
||||||
@@ -137,7 +137,7 @@ char *actions[] = {
|
|||||||
char *kfm_func = {
|
char *kfm_func = {
|
||||||
"Info",
|
"Info",
|
||||||
"Rename",
|
"Rename",
|
||||||
"View",
|
"HEX View",
|
||||||
"Edit",
|
"Edit",
|
||||||
"Copy",
|
"Copy",
|
||||||
"Move",
|
"Move",
|
||||||
@@ -185,9 +185,9 @@ char *actions[] = {
|
|||||||
|
|
||||||
#define TITLE_SETT "Settings"
|
#define TITLE_SETT "Settings"
|
||||||
#define SHOW_DEVICE_CLASS "Show device class name"
|
#define SHOW_DEVICE_CLASS "Show device class name"
|
||||||
#define SHOW_STATUS_BAR "Show status bar"
|
|
||||||
#define BIG_ICONS "Big icons in list"
|
#define BIG_ICONS "Big icons in list"
|
||||||
#define COLORED_LINES "Highlight even lines in list"
|
#define COLORED_LINES "Highlight even lines in list"
|
||||||
|
#define FONT_BOLD "Bold font"
|
||||||
#define FONT_SIZE_LABEL "Font size"
|
#define FONT_SIZE_LABEL "Font size"
|
||||||
#define LIST_LINE_HEIGHT "List line height"
|
#define LIST_LINE_HEIGHT "List line height"
|
||||||
#define SAVE_PATH_AS_DEFAULT "Current path"
|
#define SAVE_PATH_AS_DEFAULT "Current path"
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
_ini icons_ini = { "/sys/File managers/icons.ini", NULL };
|
|
||||||
|
|
||||||
struct ICONS_INI {
|
struct ICONS_INI {
|
||||||
collection exts;
|
collection exts;
|
||||||
|
@@ -158,25 +158,27 @@ void _SystemDiscs::DrawOptions(int draw_x)
|
|||||||
SystemDiscs.Get();
|
SystemDiscs.Get();
|
||||||
|
|
||||||
DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.line);
|
DrawPopup(draw_x, optionsy, DDW, list.count*KFM2_DEVH, 1, -1, sc.line);
|
||||||
|
EAX = kfont.bold;
|
||||||
|
$push eax
|
||||||
|
|
||||||
for (i=0;i<list.count;i++) {
|
for (i=0;i<list.count;i++) {
|
||||||
strcpy(#dev_name, list.get(i));
|
strcpy(#dev_name, list.get(i));
|
||||||
GetDiskIconAndName(#dev_name, #dev_icon, #disc_name);
|
GetDiskIconAndName(#dev_name, #dev_icon, #disc_name);
|
||||||
if (strstr(path, #dev_name)!=0) is_active=true; else is_active=false;
|
if (strstr(path, #dev_name)!=0) kfont.bold=true; else kfont.bold=false;
|
||||||
|
|
||||||
DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF);
|
DrawBar(draw_x, optionsy, DDW, KFM2_DEVH, 0xFFFFFF);
|
||||||
DefineButton(draw_x, optionsy, DDW, KFM2_DEVH-1, 100+i+BT_HIDE,0xFFFFFF);
|
DefineButton(draw_x, optionsy, DDW, KFM2_DEVH-1, 100+i+BT_HIDE,0xFFFFFF);
|
||||||
PutImage(draw_x + 5, optionsy+2, 18,17, is_active*7+dev_icon*17*18*3+#devices);
|
PutImage(draw_x + 5, optionsy+2, 18,17, kfont.bold*7+dev_icon*17*18*3+#devices);
|
||||||
if (is_active) kfont.bold = true;
|
|
||||||
//strncpy(#volume_label, GetVolumeLabel(#dev_name), sizeof(volume_label));
|
//strncpy(#volume_label, GetVolumeLabel(#dev_name), sizeof(volume_label));
|
||||||
strcpy(#label_file_name, #dev_name);
|
strcpy(#label_file_name, #dev_name);
|
||||||
//if (dev_name[1]!='k') && (dev_name[2]!='y') {
|
//if (dev_name[1]!='k') && (dev_name[2]!='y') {
|
||||||
// if (volume_label) sprintf(#label_file_name, "%s [%s]", #dev_name, #volume_label);
|
// if (volume_label) sprintf(#label_file_name, "%s [%s]", #dev_name, #volume_label);
|
||||||
//}
|
//}
|
||||||
kfont.WriteIntoWindow(draw_x + 24, optionsy+2, 0xFFFfff, 0x000000, kfont.size.pt, #label_file_name+1);
|
kfont.WriteIntoWindow(draw_x + 24, optionsy+2, 0xFFFfff, 0x000000, kfont.size.pt, #label_file_name+1);
|
||||||
kfont.bold = false;
|
|
||||||
optionsy += KFM2_DEVH;
|
optionsy += KFM2_DEVH;
|
||||||
}
|
}
|
||||||
|
$pop eax
|
||||||
|
kfont.bold = EAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -4,6 +4,8 @@ char file_actions[]=
|
|||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Enter
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Enter
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+Ent
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+Ent
|
||||||
-
|
-
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> |Ctrl+P
|
||||||
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+C
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+C
|
||||||
<EFBFBD><EFBFBD>१<EFBFBD><EFBFBD><EFBFBD>|Ctrl+X
|
<EFBFBD><EFBFBD>१<EFBFBD><EFBFBD><EFBFBD>|Ctrl+X
|
||||||
<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD>|Ctrl+V
|
<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD>|Ctrl+V
|
||||||
@@ -15,8 +17,10 @@ char empty_folder_actions[]=
|
|||||||
"<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> |Ctrl+V";
|
"<EFBFBD><EFBFBD>⠢<EFBFBD><EFBFBD><EFBFBD> |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|Ctrl+N
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>|Ctrl+N
|
||||||
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᮫<EFBFBD>|Ctrl+G
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>᮫<EFBFBD>|Ctrl+G
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+R
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|Ctrl+F
|
||||||
|
-
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD>|F10
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ன<EFBFBD><EFBFBD>|F10
|
||||||
<EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>";
|
<EFBFBD> <EFBFBD>ணࠬ<EFBFBD><EFBFBD>";
|
||||||
|
|
||||||
@@ -25,6 +29,8 @@ char file_actions[]=
|
|||||||
"Ava |Enter
|
"Ava |Enter
|
||||||
Ava ... |Ctrl+Ent
|
Ava ... |Ctrl+Ent
|
||||||
-
|
-
|
||||||
|
Copy path |Ctrl+P
|
||||||
|
-
|
||||||
Kopeeri |Ctrl+C
|
Kopeeri |Ctrl+C
|
||||||
L<EFBFBD>ika |Ctrl+X
|
L<EFBFBD>ika |Ctrl+X
|
||||||
Aseta |Ctrl+V
|
Aseta |Ctrl+V
|
||||||
@@ -36,8 +42,10 @@ char empty_folder_actions[]=
|
|||||||
"Aseta |Ctrl+V";
|
"Aseta |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"New window|Ctrl+N
|
"New window|Ctrl+N
|
||||||
|
-
|
||||||
Open console here|Ctrl+G
|
Open console here|Ctrl+G
|
||||||
V<EFBFBD>rskenda|Ctrl+R
|
Search|Ctrl+F
|
||||||
|
-
|
||||||
Settings|F10
|
Settings|F10
|
||||||
About";
|
About";
|
||||||
|
|
||||||
@@ -46,6 +54,8 @@ char file_actions[]=
|
|||||||
"Open |Enter
|
"Open |Enter
|
||||||
Open with... |Ctrl+Ent
|
Open with... |Ctrl+Ent
|
||||||
-
|
-
|
||||||
|
Copy path |Ctrl+P
|
||||||
|
-
|
||||||
Copy |Ctrl+C
|
Copy |Ctrl+C
|
||||||
Cut |Ctrl+X
|
Cut |Ctrl+X
|
||||||
Paste |Ctrl+V
|
Paste |Ctrl+V
|
||||||
@@ -57,8 +67,10 @@ char empty_folder_actions[]=
|
|||||||
"Paste |Ctrl+V";
|
"Paste |Ctrl+V";
|
||||||
char burger_menu_items[] =
|
char burger_menu_items[] =
|
||||||
"New window|Ctrl+N
|
"New window|Ctrl+N
|
||||||
|
-
|
||||||
Open console here|Ctrl+G
|
Open console here|Ctrl+G
|
||||||
Refresh folder|Ctrl+R
|
Search|Ctrl+F
|
||||||
|
-
|
||||||
Settings|F10
|
Settings|F10
|
||||||
About";
|
About";
|
||||||
#endif
|
#endif
|
||||||
@@ -76,17 +88,18 @@ void EventMenuClick(dword _id)
|
|||||||
if (active_menu == MENU_FILE) switch(_id) {
|
if (active_menu == MENU_FILE) switch(_id) {
|
||||||
case 1: EventOpen(0); break;
|
case 1: EventOpen(0); break;
|
||||||
case 2: ShowOpenWithDialog(); break;
|
case 2: ShowOpenWithDialog(); break;
|
||||||
case 3: CopyFilesListToClipboard(COPY); break;
|
case 3: EventCopyItemPath(); break;
|
||||||
case 4: CopyFilesListToClipboard(CUT); break;
|
case 4: CopyFilesListToClipboard(COPY); break;
|
||||||
case 5: EventPaste(path); break;
|
case 5: CopyFilesListToClipboard(CUT); break;
|
||||||
case 6: FnProcess(2); break;
|
case 6: EventPaste(path); break;
|
||||||
case 7: ShowPopinForm(POPIN_DELETE); break;
|
case 7: FnProcess(2); break;
|
||||||
case 8: FnProcess(1); break;
|
case 8: ShowPopinForm(POPIN_DELETE); break;
|
||||||
|
case 9: FnProcess(1); break;
|
||||||
}
|
}
|
||||||
if (active_menu == MENU_BURGER) switch(_id) {
|
if (active_menu == MENU_BURGER) switch(_id) {
|
||||||
case 1: EventOpenNewEolite(); break;
|
case 1: EventOpenNewEolite(); break;
|
||||||
case 2: EventOpenConsoleHere(); break;
|
case 2: EventOpenConsoleHere(); break;
|
||||||
case 3: EventRefreshDisksAndFolders(); break;
|
case 3: EventOpenSearch(); break;
|
||||||
case 4: FnProcess(10); break;
|
case 4: FnProcess(10); break;
|
||||||
case 5: EventShowAbout(); break;
|
case 5: EventShowAbout(); break;
|
||||||
}
|
}
|
||||||
|
@@ -175,8 +175,10 @@ void properties_dialog()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evMouse:
|
case evMouse:
|
||||||
|
if (!apply_question_active) {
|
||||||
edit_box_mouse stdcall (#file_name_ed);
|
edit_box_mouse stdcall (#file_name_ed);
|
||||||
edit_box_mouse stdcall (#path_to_file_ed);
|
edit_box_mouse stdcall (#path_to_file_ed);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evKey:
|
case evKey:
|
||||||
|
@@ -7,11 +7,11 @@ edit_box path_start_ed = {290,50,57,0xffffff,0x94AECE,0xffffff,0xffffff,0x100000
|
|||||||
#path_start,0, 100000000000010b,0,0};
|
#path_start,0, 100000000000010b,0,0};
|
||||||
|
|
||||||
more_less_box font_size = { NULL, 9, 22, FONT_SIZE_LABEL };
|
more_less_box font_size = { NULL, 9, 22, FONT_SIZE_LABEL };
|
||||||
more_less_box line_height = { NULL, 16, 64, LIST_LINE_HEIGHT };
|
more_less_box line_height = { NULL, 18, 64, LIST_LINE_HEIGHT };
|
||||||
checkbox show_dev_name = { SHOW_DEVICE_CLASS };
|
checkbox show_dev_name = { SHOW_DEVICE_CLASS };
|
||||||
checkbox show_status_bar = { SHOW_STATUS_BAR };
|
|
||||||
checkbox big_icons = { BIG_ICONS };
|
checkbox big_icons = { BIG_ICONS };
|
||||||
checkbox colored_lines = { COLORED_LINES };
|
checkbox colored_lines = { COLORED_LINES };
|
||||||
|
checkbox bold_font = { FONT_BOLD };
|
||||||
|
|
||||||
|
|
||||||
void settings_dialog()
|
void settings_dialog()
|
||||||
@@ -51,8 +51,10 @@ void settings_dialog()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
show_dev_name.click(id);
|
show_dev_name.click(id);
|
||||||
show_status_bar.click(id);
|
|
||||||
colored_lines.click(id);
|
colored_lines.click(id);
|
||||||
|
if (bold_font.click(id)) {
|
||||||
|
kfont.bold^=1;
|
||||||
|
}
|
||||||
if (font_size.click(id)) {
|
if (font_size.click(id)) {
|
||||||
kfont.size.pt = font_size.value;
|
kfont.size.pt = font_size.value;
|
||||||
kfont.changeSIZE();
|
kfont.changeSIZE();
|
||||||
@@ -67,12 +69,12 @@ void settings_dialog()
|
|||||||
case evKey:
|
case evKey:
|
||||||
GetKeys();
|
GetKeys();
|
||||||
if (key_scancode==SCAN_CODE_ESC) ExitSettings();
|
if (key_scancode==SCAN_CODE_ESC) ExitSettings();
|
||||||
edit_box_key_c stdcall (#path_start_ed,key_ascii << 8);
|
edit_box_key_c stdcall (#path_start_ed,key_editbox);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
DefineAndDrawWindow(Form.cwidth-300/2+Form.left, Form.cheight-292/2+Form.top, 400,
|
DefineAndDrawWindow(Form.cwidth-300/2+Form.left, Form.cheight-292/2+Form.top, 400,
|
||||||
-efm*42+345+skin_h,0x34,sc.work,TITLE_SETT,0);
|
345+skin_h,0x34,sc.work,TITLE_SETT,0);
|
||||||
GetProcessInfo(#Settings, SelfInfo);
|
GetProcessInfo(#Settings, SelfInfo);
|
||||||
DrawSettingsCheckBoxes();
|
DrawSettingsCheckBoxes();
|
||||||
}
|
}
|
||||||
@@ -96,10 +98,10 @@ void DrawSettingsCheckBoxes()
|
|||||||
y.n = 0;
|
y.n = 0;
|
||||||
if (!efm) {
|
if (!efm) {
|
||||||
show_dev_name.draw(XXX, y.inc(14));
|
show_dev_name.draw(XXX, y.inc(14));
|
||||||
show_status_bar.draw(XXX, y.inc(25));
|
|
||||||
}
|
}
|
||||||
big_icons.draw(XXX, y.inc(25));
|
big_icons.draw(XXX, y.inc(25));
|
||||||
colored_lines.draw(XXX, y.inc(25));
|
colored_lines.draw(XXX, y.inc(25));
|
||||||
|
bold_font.draw(XXX, y.inc(25));
|
||||||
font_size.draw(XXX, y.inc(31));
|
font_size.draw(XXX, y.inc(31));
|
||||||
line_height.draw(XXX, y.inc(31));
|
line_height.draw(XXX, y.inc(31));
|
||||||
|
|
||||||
@@ -121,7 +123,7 @@ void LoadIniSettings()
|
|||||||
|
|
||||||
files.SetFont(6, 9, 10000000b);
|
files.SetFont(6, 9, 10000000b);
|
||||||
show_dev_name.checked = ini.GetInt("ShowDeviceName", true);
|
show_dev_name.checked = ini.GetInt("ShowDeviceName", true);
|
||||||
show_status_bar.checked = ini.GetInt("ShowStatusBar", true);
|
kfont.bold = bold_font.checked = ini.GetInt("BoldFont", false);
|
||||||
big_icons.checked = ini.GetInt("BigIcons", false); BigIconsSwitch();
|
big_icons.checked = ini.GetInt("BigIcons", false); BigIconsSwitch();
|
||||||
colored_lines.checked = ini.GetInt("ColoredLines", true);
|
colored_lines.checked = ini.GetInt("ColoredLines", true);
|
||||||
kfont.size.pt = ini.GetInt("FontSize", 13);
|
kfont.size.pt = ini.GetInt("FontSize", 13);
|
||||||
@@ -132,7 +134,6 @@ void LoadIniSettings()
|
|||||||
Form.height = ini.GetInt("WinH", efm*100+517);
|
Form.height = ini.GetInt("WinH", efm*100+517);
|
||||||
ini.GetString("DefaultPath", #path_start, 4096, "/sys");
|
ini.GetString("DefaultPath", #path_start, 4096, "/sys");
|
||||||
path_start_ed.size = path_start_ed.pos = strlen(#path_start);
|
path_start_ed.size = path_start_ed.pos = strlen(#path_start);
|
||||||
kfont.init(DEFAULT_FONT);
|
|
||||||
ini_get_str stdcall ("/sys/SETTINGS/SYSTEM.INI", "system", "font smoothing",#temp,4096,"on");
|
ini_get_str stdcall ("/sys/SETTINGS/SYSTEM.INI", "system", "font smoothing",#temp,4096,"on");
|
||||||
if(streq(#temp,"off")) kfont.smooth = false; else kfont.smooth = true;
|
if(streq(#temp,"off")) kfont.smooth = false; else kfont.smooth = true;
|
||||||
}
|
}
|
||||||
@@ -141,7 +142,7 @@ void LoadIniSettings()
|
|||||||
void SaveIniSettings()
|
void SaveIniSettings()
|
||||||
{
|
{
|
||||||
ini.SetInt("ShowDeviceName", show_dev_name.checked);
|
ini.SetInt("ShowDeviceName", show_dev_name.checked);
|
||||||
ini.SetInt("ShowStatusBar", show_status_bar.checked);
|
ini.SetInt("BoldFont", bold_font.checked);
|
||||||
ini.SetInt("BigIcons", big_icons.checked);
|
ini.SetInt("BigIcons", big_icons.checked);
|
||||||
ini.SetInt("ColoredLines", colored_lines.checked);
|
ini.SetInt("ColoredLines", colored_lines.checked);
|
||||||
ini.SetInt("FontSize", kfont.size.pt);
|
ini.SetInt("FontSize", kfont.size.pt);
|
||||||
|
@@ -1,13 +1,3 @@
|
|||||||
#define MEMSIZE 100*1000
|
|
||||||
|
|
||||||
#include "../lib/fs.h"
|
|
||||||
#include "../lib/gui.h"
|
|
||||||
#include "../lib/list_box.h"
|
|
||||||
#include "../lib/obj/box_lib.h"
|
|
||||||
#include "../lib/obj/proc_lib.h"
|
|
||||||
#include "../lib/obj/libini.h"
|
|
||||||
#include "../lib/patterns/select_list.h"
|
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// DATA //
|
// DATA //
|
||||||
@@ -34,11 +24,11 @@ enum {
|
|||||||
BTN_CHOOSE_PATH
|
BTN_CHOOSE_PATH
|
||||||
};
|
};
|
||||||
|
|
||||||
proc_info Form;
|
dword mouse_dd;
|
||||||
#define TOOLBAR_H 100
|
edit_box edit_name = {230,13, 30,0xffffff,0x94AECE,0xffffff,0xffffff,
|
||||||
|
0x10000000,sizeof(search_name)-2,#search_name,#mouse_dd, ed_focus,0,0};
|
||||||
edit_box edit_name = {230,13, 30,0xffffff,0x94AECE,0xffffff,0xffffff,0x10000000,sizeof(search_name)-2,#search_name,0, ed_focus,0,0};
|
edit_box edit_path = {310,260,30,0xffffff,0x94AECE,0xffffff,0xffffff,
|
||||||
edit_box edit_path = {310,260,30,0xffffff,0x94AECE,0xffffff,0xffffff,0x10000000,sizeof(search_path)-2,#search_path,0, 0b,0,0};
|
0x10000000,sizeof(search_path)-2,#search_path,#mouse_dd, 0b,0,0};
|
||||||
|
|
||||||
opendialog open_folder_dialog =
|
opendialog open_folder_dialog =
|
||||||
{
|
{
|
||||||
@@ -49,7 +39,7 @@ opendialog open_folder_dialog =
|
|||||||
0, //dword opendir_path,
|
0, //dword opendir_path,
|
||||||
#search_path, //dword dir_default_path,
|
#search_path, //dword dir_default_path,
|
||||||
#open_dialog_path,
|
#open_dialog_path,
|
||||||
#draw_window,
|
#draw_window_search,
|
||||||
0,
|
0,
|
||||||
#search_path, //dword openfile_path,
|
#search_path, //dword openfile_path,
|
||||||
0, //dword filename_area,
|
0, //dword filename_area,
|
||||||
@@ -97,47 +87,72 @@ void RESULTS::drop()
|
|||||||
// //
|
// //
|
||||||
//===================================================//
|
//===================================================//
|
||||||
|
|
||||||
void main()
|
void SearchThread()
|
||||||
{
|
{
|
||||||
int prev_first, prev_cur_y;
|
int prev_first, prev_cur_y;
|
||||||
load_dll(boxlib, #box_lib_init,0);
|
|
||||||
load_dll(libini, #lib_init,1);
|
|
||||||
load_dll(Proc_lib, #OpenDialog_init,0);
|
load_dll(Proc_lib, #OpenDialog_init,0);
|
||||||
OpenDialog_init stdcall (#open_folder_dialog);
|
OpenDialog_init stdcall (#open_folder_dialog);
|
||||||
|
|
||||||
edit_box_set_text stdcall (#edit_name, ".ini");
|
if (!ESBYTE[path]) strcpy(path, "/sys");
|
||||||
edit_box_set_text stdcall (#edit_path, "/kolibrios");
|
edit_box_set_text stdcall (#edit_path, path);
|
||||||
|
|
||||||
@SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
@SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||||
loop() switch(@WaitEvent())
|
loop() switch(@WaitEvent())
|
||||||
{
|
{
|
||||||
case evMouse:
|
case evMouse:
|
||||||
|
|
||||||
edit_box_mouse stdcall (#edit_name);
|
edit_box_mouse stdcall (#edit_name);
|
||||||
edit_box_mouse stdcall (#edit_path);
|
edit_box_mouse stdcall (#edit_path);
|
||||||
|
|
||||||
|
|
||||||
|
prev_cur_y = select_list.cur_y;
|
||||||
|
|
||||||
if (SelectList_ProcessMouse()) {
|
if (SelectList_ProcessMouse()) {
|
||||||
SelectList_Draw();
|
SelectList_Draw();
|
||||||
} else {
|
} else {
|
||||||
SelectList_DrawLine(select_list.cur_y);
|
SelectList_DrawLine(select_list.cur_y);
|
||||||
}
|
|
||||||
if (mouse.key&MOUSE_RIGHT) && (mouse.up) && (select_list.MouseOver()) EventOpenFile(false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
if (select_list.MouseOver(mouse.x, mouse.y))
|
||||||
|
{
|
||||||
|
if (mouse.key&MOUSE_LEFT) && (mouse.up) {
|
||||||
|
if (prev_cur_y == select_list.cur_y) EventRunFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mouse.key&MOUSE_RIGHT) && (mouse.up) {
|
||||||
|
EventShowFileInFolder();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case evButton:
|
case evButton:
|
||||||
switch (@GetButtonID()) {
|
switch (@GetButtonID()) {
|
||||||
case 1: @ExitProcess(); break;
|
case 1: @ExitProcess(); break;
|
||||||
case BTN_SEARCH: EventSearch(); break;
|
case BTN_SEARCH: EventSearch(); break;
|
||||||
case BTN_CHOOSE_PATH: EventChooseSearchInPath();
|
case BTN_CHOOSE_PATH: EventChooseSearchInPath();
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
|
break;
|
||||||
case evKey:
|
case evKey:
|
||||||
@GetKeys();
|
GetKeys();
|
||||||
edit_box_key stdcall (#edit_name);
|
edit_box_key_c stdcall (#edit_name, key_editbox);
|
||||||
edit_box_key stdcall (#edit_path);
|
edit_box_key_c stdcall (#edit_path, key_editbox);
|
||||||
|
if (key_scancode == SCAN_CODE_TAB) {
|
||||||
|
if (edit_name.flags & ed_focus) {
|
||||||
|
edit_name.flags >< edit_path.flags;
|
||||||
|
} else if (edit_path.flags & ed_focus) {
|
||||||
|
edit_path.flags -= ed_focus;
|
||||||
|
} else {
|
||||||
|
edit_name.flags += ed_focus;
|
||||||
|
}
|
||||||
|
draw_window_search();
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (edit_name.flags & ed_focus) || (edit_path.flags & ed_focus) {
|
if (edit_name.flags & ed_focus) || (edit_path.flags & ed_focus) {
|
||||||
if (SCAN_CODE_ENTER == key_scancode) EventSearch();
|
if (SCAN_CODE_ENTER == key_scancode) EventSearch();
|
||||||
} else {
|
} else {
|
||||||
if (SCAN_CODE_ENTER == key_scancode) EventOpenFile(true);
|
if (SCAN_CODE_ENTER == key_scancode) EventRunFile();
|
||||||
prev_first = select_list.first;
|
prev_first = select_list.first;
|
||||||
prev_cur_y = select_list.cur_y;
|
prev_cur_y = select_list.cur_y;
|
||||||
if (select_list.ProcessKey(key_scancode)) {
|
if (select_list.ProcessKey(key_scancode)) {
|
||||||
@@ -152,33 +167,37 @@ void main()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case evReDraw:
|
case evReDraw:
|
||||||
draw_window();
|
sc.get();
|
||||||
|
DefineAndDrawWindow(screen.w-600/2,100,640,600,0x73,sc.work,T_WINDOW_HEADER,0);
|
||||||
|
GetProcessInfo(#Form, SelfInfo);
|
||||||
|
IF (Form.status_window&ROLLED_UP) break;
|
||||||
|
if (Form.width < 370) { MoveSize(OLD,OLD,370,OLD); break; }
|
||||||
|
if (Form.height < 250) { MoveSize(OLD,OLD,OLD,250); break; }
|
||||||
|
draw_window_search();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_window()
|
#define TOOLBAR_H 100
|
||||||
|
#define PAD 10
|
||||||
|
#define LISTX PAD
|
||||||
|
#define LISTY TOOLBAR_H
|
||||||
|
|
||||||
|
void draw_window_search()
|
||||||
{
|
{
|
||||||
sc.get();
|
SelectList_Init(LISTX, LISTY, Form.cwidth-scroll1.size_x-LISTX-LISTX, Form.cheight-TOOLBAR_H-PAD);
|
||||||
DefineAndDrawWindow(screen.w-600/2,100,640,600,0x73,sc.work,T_WINDOW_HEADER,0);
|
|
||||||
GetProcessInfo(#Form, SelfInfo);
|
|
||||||
IF (Form.status_window&ROLLED_UP) return;
|
|
||||||
if (Form.width < 270) { MoveSize(OLD,OLD,270,OLD); return; }
|
|
||||||
if (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); return; }
|
|
||||||
SelectList_Init( 0, TOOLBAR_H,
|
|
||||||
Form.cwidth-scroll1.size_x-1,
|
|
||||||
Form.cheight-TOOLBAR_H-1);
|
|
||||||
SelectList_Draw();
|
SelectList_Draw();
|
||||||
DrawBar(0, TOOLBAR_H-1, Form.cwidth, 1, sc.line);
|
DrawWideRectangle(0, LISTY-PAD-1, Form.cwidth, Form.cheight-TOOLBAR_H+PAD+1, 9, sc.work);
|
||||||
|
DrawRectangle(PAD-1, LISTY-1, select_list.w+1, select_list.h+1, sc.line);
|
||||||
|
|
||||||
DrawBar(0, 0, Form.cwidth, TOOLBAR_H-1, sc.work);
|
DrawBar(0, 0, Form.cwidth, TOOLBAR_H-1, sc.work);
|
||||||
DrawEditBox(#edit_name);
|
DrawEditBox(#edit_name);
|
||||||
WriteText(edit_name.left-2, edit_name.top-20, 0x90, sc.work_text, T_SEARCH_NAME);
|
WriteText(edit_name.left-2, edit_name.top-20, 0x90, sc.work_text, T_SEARCH_NAME);
|
||||||
edit_path.width = Form.cwidth - 314;
|
edit_path.width = Form.cwidth - 314;
|
||||||
|
DrawStandartCaptButton(PAD, 63, BTN_SEARCH, T_BUTTON_SEARCH);
|
||||||
DrawFileBox(#edit_path, T_SEARCH_PATH, BTN_CHOOSE_PATH);
|
DrawFileBox(#edit_path, T_SEARCH_PATH, BTN_CHOOSE_PATH);
|
||||||
DrawStandartCaptButton(10, 63, BTN_SEARCH, T_BUTTON_SEARCH);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_ini ini = { "/sys/File managers/icons.ini", "icons16" };
|
|
||||||
void SelectList_DrawLine(dword i)
|
void SelectList_DrawLine(dword i)
|
||||||
{
|
{
|
||||||
int yyy = i*select_list.item_h+select_list.y;
|
int yyy = i*select_list.item_h+select_list.y;
|
||||||
@@ -201,16 +220,19 @@ void SelectList_DrawLine(dword i)
|
|||||||
} else {
|
} else {
|
||||||
strcpy(#tname, results.name.get(select_list.first + i));
|
strcpy(#tname, results.name.get(select_list.first + i));
|
||||||
strlwr(#tname);
|
strlwr(#tname);
|
||||||
icon = ini.GetInt(#tname + strrchr(#tname, '.'), 2);
|
icons_ini.section = "icons16";
|
||||||
|
icon = icons_ini.GetInt(#tname + strrchr(#tname, '.'), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ICONX 7
|
#define ICONX 7
|
||||||
DrawBar(select_list.x, yyy, ICONX-1, select_list.item_h, 0xFFFfff);
|
DrawBar(LISTX, yyy, ICONX, select_list.item_h, 0xFFFfff);
|
||||||
DrawBar(select_list.x+ICONX+18, yyy, select_list.w-ICONX-18, select_list.item_h, bg);
|
DrawBar(LISTX+ICONX, yyy, 18, 1, 0xFFFfff);
|
||||||
draw_icon_16(select_list.x+ICONX, yyy+1, icon);
|
DrawBar(LISTX+ICONX, yyy + select_list.item_h-1, 18, 1, 0xFFFfff);
|
||||||
|
DrawBar(LISTX+ICONX+18, yyy, select_list.w-ICONX-18, select_list.item_h, bg);
|
||||||
|
draw_icon_16(LISTX+ICONX, yyy+1, icon);
|
||||||
|
|
||||||
WriteText(select_list.x + ICONX+18+4,yyy+select_list.text_y,0x90, col, results.name.get(select_list.first + i));
|
WriteText(LISTX + ICONX+18+4,yyy+select_list.text_y,0x90, col, results.name.get(select_list.first + i));
|
||||||
WriteText(select_list.x + ICONX+18+206,yyy+select_list.text_y,0x90, col, results.path.get(select_list.first + i));
|
WriteText(LISTX + ICONX+18+206,yyy+select_list.text_y,0x90, col, results.path.get(select_list.first + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectList_LineChanged()
|
void SelectList_LineChanged()
|
||||||
@@ -218,6 +240,12 @@ void SelectList_LineChanged()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void getfullpath(dword to, path, name) {
|
||||||
|
strcpy(to, path);
|
||||||
|
chrcat(to, '/');
|
||||||
|
strcat(to, name);
|
||||||
|
}
|
||||||
|
|
||||||
//===================================================//
|
//===================================================//
|
||||||
// //
|
// //
|
||||||
// EVENTS //
|
// EVENTS //
|
||||||
@@ -232,22 +260,21 @@ void EventChooseSearchInPath()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void getfullpath(dword to, path, name) {
|
void EventShowFileInFolder()
|
||||||
strcpy(to, path);
|
|
||||||
chrcat(to, '/');
|
|
||||||
strcat(to, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventOpenFile(int run_file_not_show_in_folder)
|
|
||||||
{
|
{
|
||||||
char full_path[4096];
|
char full_path[4096];
|
||||||
int pos = select_list.cur_y;
|
int pos = select_list.cur_y;
|
||||||
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
||||||
if (run_file_not_show_in_folder) {
|
RunProgram(#program_path, #full_path);
|
||||||
RunProgram("/sys/@open", #full_path);
|
|
||||||
} else {
|
|
||||||
RunProgram("/sys/file managers/eolite", #full_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventRunFile()
|
||||||
|
{
|
||||||
|
char full_path[4096];
|
||||||
|
int pos = select_list.cur_y;
|
||||||
|
getfullpath(#full_path, results.path.get(pos), results.name.get(pos));
|
||||||
|
if (dir_exists(#full_path)) chrcat(#full_path, '/');
|
||||||
|
RunProgram("/sys/@open", #full_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventSearch()
|
void EventSearch()
|
||||||
@@ -289,6 +316,4 @@ void find_loop(dword way)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stop:
|
|
||||||
|
|
||||||
|
|
@@ -1,6 +0,0 @@
|
|||||||
if tup.getconfig("NO_CMM") ~= "" then return end
|
|
||||||
if tup.getconfig("LANG") == "ru_RU"
|
|
||||||
then C_LANG = "LANG_RUS"
|
|
||||||
else C_LANG = "LANG_ENG" -- this includes default case without config
|
|
||||||
end
|
|
||||||
tup.rule("font_viewer.c", "c-- /D=$(C_LANG) /OPATH=%o %f" .. tup.getconfig("KPACK_CMD"), "font_viewer.com")
|
|
@@ -1,4 +0,0 @@
|
|||||||
@del kf_view
|
|
||||||
@C-- font_viewer.c
|
|
||||||
@rename font_viewer.com kf_view
|
|
||||||
if not exist kf_view ( @pause )
|
|
@@ -13,7 +13,6 @@ struct collection_int
|
|||||||
dword buf;
|
dword buf;
|
||||||
dword buf_size;
|
dword buf_size;
|
||||||
unsigned count;
|
unsigned count;
|
||||||
void alloc();
|
|
||||||
void add();
|
void add();
|
||||||
dword get();
|
dword get();
|
||||||
dword set();
|
dword set();
|
||||||
@@ -22,34 +21,29 @@ struct collection_int
|
|||||||
dword get_last();
|
dword get_last();
|
||||||
void pop();
|
void pop();
|
||||||
void drop();
|
void drop();
|
||||||
|
#define DWSIZE4 4
|
||||||
};
|
};
|
||||||
|
|
||||||
:void collection_int::alloc() {
|
:void collection_int::add(dword _in) {
|
||||||
if (!buf) {
|
unsigned i;
|
||||||
buf_size = 4096;
|
if (!buf) || (count + 1 * DWSIZE4 >= buf_size) {
|
||||||
buf = malloc(4096);
|
buf_size += 4096 * 5;
|
||||||
} else {
|
|
||||||
buf_size += 4096;
|
|
||||||
buf = realloc(buf, buf_size);
|
buf = realloc(buf, buf_size);
|
||||||
}
|
}
|
||||||
}
|
i = count * DWSIZE4 + buf;
|
||||||
|
ESDWORD[i] = _in;
|
||||||
:void collection_int::add(dword _in) {
|
|
||||||
if (!buf) || (count * sizeof(dword) >= buf_size) alloc();
|
|
||||||
EAX = count * sizeof(dword) + buf;
|
|
||||||
ESDWORD[EAX] = _in;
|
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
:dword collection_int::get(dword pos) {
|
:dword collection_int::get(dword pos) {
|
||||||
if (pos<0) || (pos>=count) return 0;
|
if (!buf) || (pos<0) || (pos>=count) return 0;
|
||||||
return ESDWORD[pos * sizeof(dword) + buf];
|
return ESDWORD[pos * DWSIZE4 + buf];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
:dword collection_int::set(dword pos, _in) {
|
:dword collection_int::set(dword pos, _in) {
|
||||||
while (pos >= count) add(0);
|
while (pos >= count) add(0);
|
||||||
EAX = pos * sizeof(dword) + buf;
|
EAX = pos * DWSIZE4 + buf;
|
||||||
ESDWORD[EAX] = _in;
|
ESDWORD[EAX] = _in;
|
||||||
return ESDWORD[EAX];
|
return ESDWORD[EAX];
|
||||||
}
|
}
|
||||||
@@ -57,8 +51,8 @@ struct collection_int
|
|||||||
:void collection_int::swap(dword pos1, pos2) {
|
:void collection_int::swap(dword pos1, pos2) {
|
||||||
while (pos1 >= count) add(0);
|
while (pos1 >= count) add(0);
|
||||||
while (pos2 >= count) add(0);
|
while (pos2 >= count) add(0);
|
||||||
EAX = pos1 * sizeof(dword) + buf;
|
EAX = pos1 * DWSIZE4 + buf;
|
||||||
EBX = pos2 * sizeof(dword) + buf;
|
EBX = pos2 * DWSIZE4 + buf;
|
||||||
ESDWORD[EAX] >< ESDWORD[EBX];
|
ESDWORD[EAX] >< ESDWORD[EBX];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,6 +71,8 @@ struct collection_int
|
|||||||
|
|
||||||
:void collection_int::drop() {
|
:void collection_int::drop() {
|
||||||
count = 0;
|
count = 0;
|
||||||
|
//if (buf) buf = free(buf);
|
||||||
|
//buf_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*========================================================
|
/*========================================================
|
||||||
@@ -87,46 +83,38 @@ struct collection_int
|
|||||||
|
|
||||||
struct collection
|
struct collection
|
||||||
{
|
{
|
||||||
int realloc_size, count;
|
unsigned int realloc_size, count;
|
||||||
dword data_start;
|
dword data_start;
|
||||||
dword data_size;
|
dword data_size;
|
||||||
collection_int offset;
|
collection_int offset;
|
||||||
int add();
|
dword add();
|
||||||
int addn();
|
|
||||||
dword get(); //get_name_by_pos
|
dword get(); //get_name_by_pos
|
||||||
dword get_pos_by_name();
|
dword get_pos_by_name();
|
||||||
void drop();
|
void drop();
|
||||||
void increase_data_size();
|
|
||||||
dword get_last();
|
dword get_last();
|
||||||
bool pop();
|
bool pop();
|
||||||
};
|
};
|
||||||
|
|
||||||
:void collection::increase_data_size() {
|
:dword collection::add(dword in) {
|
||||||
if (realloc_size<4096) realloc_size = 4096;
|
dword len = strlen(in);
|
||||||
if (!data_size) {
|
unsigned cur_buf_size;
|
||||||
data_size = realloc_size;
|
|
||||||
data_start = malloc(realloc_size);
|
if (!count) {
|
||||||
|
cur_buf_size = 0;
|
||||||
|
} else {
|
||||||
|
cur_buf_size = offset.get(count);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
data_size = data_size + realloc_size;
|
if (realloc_size<4096) realloc_size = 4096;
|
||||||
|
while (cur_buf_size + len + 4 > data_size) {
|
||||||
|
data_size += realloc_size;
|
||||||
data_start = realloc(data_start, data_size);
|
data_start = realloc(data_start, data_size);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
:int collection::add(dword in) {
|
strncpy(data_start+cur_buf_size, in, len);
|
||||||
return addn(in, strlen(in));
|
|
||||||
}
|
|
||||||
|
|
||||||
:int collection::addn(dword in, len) {
|
|
||||||
if (offset.get(count)+len+2 > data_size) {
|
|
||||||
increase_data_size();
|
|
||||||
addn(in, len);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
strncpy(data_start+offset.get(count), in, len);
|
|
||||||
count++;
|
count++;
|
||||||
offset.set(count, offset.get(count-1) + len + 1);
|
offset.set(count, cur_buf_size + len + 1);
|
||||||
return 1;
|
return data_start + cur_buf_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
:dword collection::get(dword pos) {
|
:dword collection::get(dword pos) {
|
||||||
@@ -141,7 +129,9 @@ struct collection
|
|||||||
:dword collection::get_pos_by_name(dword name) {
|
:dword collection::get_pos_by_name(dword name) {
|
||||||
dword i;
|
dword i;
|
||||||
for (i=0; i<count; i++) {
|
for (i=0; i<count; i++) {
|
||||||
if (strcmp(data_start + offset.get(i), name)==0) return i;
|
if (streq(data_start + offset.get(i), name)) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|