eCo Software
doesn't receive
payments from USA

 
Update

 
Applications

 
Advantages:

 
For developer:

 
(ðÁÊÐÙ ÐÒÏÇÒÁÍÍ)

 
Companies:

 
History:

 
(âÏÎÕÓÙ)

 
Advice:

 
(âÁÒØÅÒÙ É ÒÅÛÅÎÉÑ)

 
Technologies:

 
(ðÒÉÍÅÎÅÎÉÅ × ÎÁÕËÅ, ÌÁÂÏÒÁÔÏÒÉÉ, ..)

 

 
Solutions

 
New eComStation:

 
Future:

 
(óÓÙÌËÉ ÎÁ ÄÒÕÇÉÅ ÓÁÊÔÙ)

 
(ëÁÒÔÉÎËÁ ÄÎÑ)

 
OS/2 artefacts:

 
Gadgets:

AD: ArcaOS 5.1 Russian LIP
Russian ARCAOS exists and it's available since the middle of 2017. All versions are supported: 5.1, 5.1.1.

eCo Software is able to maintain OS/2 LIP packages for any other language (German, Dutch, Brazilian Portuguese, Spanish, Sweden, etc)

Perfect eComStation -- Skinning


TITLE: Perfect eComStation -- Skinning

DATE: 2008-04-11 17:35:45

AUTHOR: Eugene Evstigneev

Please use online translator
go to http://translate.google.com
and request the translation of http://ru.ecomstation./showarticle.php?id=178
to your language

Eugene Evstigneev .......... ............. ........... ........ ... ........ ..... eComStation.

1. .......

  • [A1] .... ........ ..... ...... .... . ....... XML;
  • [A2] .... ...... ......... ...... ............. .....; ... ................ ...... ............... ...... ...... ....;
  • [A3] ... ........... ............ ........ ...... ......... ....... . .......... (. ...... .......... .. SOM) . ....... ...... ............. ...... ... ..... .......... ...........;
  • [A4] ........ ........... .......... ... ............. . ......... .. ...... .... ........... .........;
  • [A5] ........ ...... .... ............. .. ...... ........... ...... .... . ..... ... ............. ... .. ..... .......... ........, ... . . .................;
  • [A6] ........ ...... ............... ........... ........... ..... ... ... ...... ......., ... . ... ........ ....... ....;
  • [A7] ........ ............. .......... ... ..... .. ...... .... ............., . ...... ............ ...... ...... ........;
  • [A8] ...... .... ........... ........... ...... ......... ........... ... ...... ......... ...... . .... .. ........;
  • [A9] ..... ........ ........... .. ...... ........ ........... .. .......... ....... ..... ....... .. ......... . ........... ..........;
  • [A10] . ........ ..... .. ...... ........... ...... . ...... ........., ................ .. ...... .........;
  • [A11] .... ...... ......... ........... ................. .... . .......... ..... . ... ........... ....... . ......... ..........

2. ............. ......... . API - ........... ..........

........... .......... - ... .........., ............ . ......... ............. ..... ........... ..........:

  • ........... .......... ..... ........... ......... . ........... . ........;
  • ........... .......... ..... .... ............, ... ............ .............. .. ............. .... .. ......... . ........;
  • . ........... .......... ......... ........, ............ ...... ...........

...... . ............ ........... ...... .... ........... ... ....... ........... ......., .. ........... . ........., .. ........... ... ......

... .......... ......... . ........... .......... ...... ......... ..... ......, ... ......... .... (....../.. ...... ... ......; ......./.. ....... ... ......; ...... .. ........./.. ... ......... . ....) ... [A8], ... . ... .......... ......... (....., .... . ....). ........... .......... ...... ............. ........ presparams. ... .................. ....... ........... drag-n-drop ...... . ....... .. ........ ([A9]) .......... .............. 3 ........... .......... ... ........ ......, ..... .... . ..... ......... ...... ....... .... .... ................ .......... ...... ............. . ............... ......... ....... ... .............. ...... . ....... .. ....... .......... (....), ...... ... .. ...... ...... ............... ......... .... ....... ....., .... . .... ......... ..............

.......... ...... .... ........ ... ............. . ........ ......

... ........ .......... . .............. ......... .... ...... .... ............. API ... ...... . ...... ........... .........., ........... ........ ... ........ ...... .... .... .......... ......... ........., ............ ..... ........./....... .... .... . ........... .. ........ .......... ..... ........, . ..... . .. ........ .......... .... ........ .....

3. ............. ......... . API - XML-......

...... ...... .... .......... . ............ . ............. XML 1.0 W3C. ...... ...... ............ ........ ...... . ....... ........ ....... ... ... ........... ......... ... ........... [A3].

............... ......... ...... .............. .. ........... ...... ... ............... ........ . ...........

4. ........... .........

........... ........ - ... ....... ....... ............ . ..... ......... - ... ........., ....... .. ...... ....... .......... ............ ......... ..... . ........ presentation space. . .......... ......... ...... .... .......... ......... "Paint", .............. ............... ......... . presentation space, ......... .. ....... ...... ............ . ........ ........ .......... . .......... ...... ..... .............. ......... ........ ............... .......... ... ........ ....... ......... ....... ...... ([A3]). ..... ....... .......... ...... ..............:

  • x-.......... ....... .........;
  • y-.......... ....... .........;
  • ...... ....... .........;
  • ...... ....... .........;
  • ...... .. ...... .... ....... ......... (padding-left) (... [A10]);
  • ...... .. ....... .... ....... ......... (padding-right) (... [A10]);
  • ...... .. ....... .... ....... ......... (padding-bottom) (... [A10]);
  • ...... .. ........ .... ....... ......... (padding-top) (... [A10]);
  • ............ .. ...........;
  • ............ .. .........;
  • ...... .. .....;
  • ...... .. ...........;
  • .... ....;
  • .... ......... .....;
  • .............. ....;
  • .....;
  • .............. ........ (................, ULONG).

........ ........... ................. .......... ...... .......... ([A4]), .. ....... .......... ...... .............. ......... .. ...... ........, .......... .... "..."-"........" ... .... ...... .........., .. ........ . ..... ................, .. ......., ........, ............ . ........ ......

..... "Paint" ...... .............. ......... "ConfigDlg", ....... .......... ...... ... .......... ......... ........., ........... . ...... .......... ............ ......... .....

..... .......... ............ .......... ...... ..............:

  • solid color;
  • gradient;
  • image;
  • growable image;
  • toned image;
  • toned growable image;
  • icon;
  • text.

5. ........ .....

5.1. .......... .............

. .......... ......... .... ........ ...... .... . ....... XML ([A1]) . ............... ........... well-formed ......... . .. .... ......... .......... ("Standalone Document Declaration"), .... .......... ......... ...... .... ....:

  <?xml version="1.0" standalone="no"?>

5.2. .......... .............

5.2.1 ............

........ ......... ....... ........ ............ ................... ....., ........... ........... .......... ...... ........ ...... .... .......... ....:

 <primitive name="..">
    <parameter name=".." value=".." />
    ...
 </primitive>

..........:

 <primitive name="text">
    <parameter name="x" value="0" />
    <parameter name="y" value="0" />
    <parameter name="w" value="&cxv_w;" />
    <parameter name="h" value="&cxv_h;" />
    <parameter name="text" value="&cxv_text;" />
    <parameter name="color" value="&cxv_foregroundcolor;" />
    <parameter name="font" value="&cxv_font;" />
    <parameter name="x_shadow" value="1" />
    <parameter name="h_align" value="1" />
 </primitive>

..... ... "primitive" .......... ..... . ......... "paint" ........., ... ........ ............ ............ ......... "name". ......... ........ "parameter" .......... ..... ........, ............ . ........ ....... .........., ... ....... "name" .......... ... ........., . "value" - ......... . ............ . ..4, ................ ......... ...... ............ ............... . ...... .........., . ... ...... . .... ....... ......... ........ .......... ..... .... ...... . .... ........, ... . . .... ...... .. ........... .........., ............ . ............ . ........ ........ ......... ("entity") ............ XML.

...... ........ ....... ............. . .......... CCI, ......... ............ .......... ......... ........... . ... .............. . ........ .......... ............ ......... ......

5.2.2. .............

.............. ..... ........ .......... . ........... ...... .... ...... ............ ..... ........ ...... "class" . ............ ......... "name", ............ ..... .... ([A5]).

......:

 <class name="pushbutton">
    <primitive>...</primitive>
    ...
 </class>

..... ........... ....... ............ ... ...... ......., .......... ........... ........ ........... ... ........... ...., ............ ... ............... ([A6]). . ...... .......... ......... .. ............ ...... PM, ............... ..... .... ......, ............ .......... ...., . . SOM ... ..... .... ... ........ ...... ........ ... ........... .... ...... .... ......... .......:

 <window name="closebutton">
    <primitive>...</primitive>
    ...
 </window>

..... ....... "name" .... "window" .......... ............. ................ .....

....... ..... <class> . <window> ..... ......... ............... ... ...... ........, ..... ... ................ .... ....... ... ........ <window>, ... . <class>. . .... ...... ......... ...... ..... ........, ............ . .... <window>.

. ........ ..... .... ........ ..... ...... ......... .................. ..... <class> . <window>.

5.2.3. ........ ......

...... ..... ...... ......... ........ ............ ... ......... ......... ...... . .... .. ........ ([A8]). ..... ......... ...... ............ ............ ..........., ........ ....... ...... .............. . .......... ......... .. ..... .......

................ (...... ....... .. ........ .............), ... ........ ......... .....-.... ........... .......... ..... .... ............ ........... .... .......... ....:

 <if-eq name="" value="">
    ...
 </if-eq>

..... ....... "name" ........ ... (........) ........... .........., "value" - ......... ... .... .......... ............ ........ (. ...... ...... - .........).

.......... ........ (....) ..... ............ ... ... .......... .......... (...... ....../......), ... . .......... ............ (...... [..] ... ....., hover). ......... ........ ..... . ......... ........ ..... ......... ......... .......:

 <class name="pushbutton">
 <!-- ...... ...... -->
    <if-eq name="&pushed;" value="1">
       <primitive>..</primitive>
       ...
    </if-eq>
 <!-- ...... ...... -->
    <if-eq name="&pushed;" value="0">
 <!-- ...... ... ....... -->
       <if-eq name="&hover;" value="1">
          <primitive>..</primitive>
          ...
       </if-eq>
 <!-- ...... .. ... ....... -->
       <if-eq name="&hover;" value="0">
          <primitive>..</primitive>
          ...
       </if-eq>
    </if-eq>
 </class>

........ ........ - ........ ............. . ........... ........ . ........... .. ..... ......... ........... .........., ............ . ........ ........ ........, ... .... ........ .......... ..... .............. . ........ ......., ........... .... ... ......... ........ ..... ........... .......... ..... ........ . ............ ....... ...................

6. ........

........ ........... ................ ............. ...... .... ... .......... ... ................, ... ..... ................. .... . ..... .. ..... ........... ........ ........, ................ ...... ..... ...... (..... ......., ..... ... .................. .... ............. ......... . ....). . .... ...... ...... .......... ........, ............... ............ ...... . ........ ............. ........, ... ........ .......:

  Window
     Pushbutton
        MyPushbutton
        

........ ............ ....... ...... ... ...... "Pushbutton". ... ............ .... ...... "MyPushbutton" ...... .............. ........ ...... "Pushbutton", ... ........ ........ .. ........, ....... .........

7. ......... ........ ..........

...... ........ .......... ... ...... .............. .... ..... ......... ........ ........, ....... ..-....... ............... . ......... .. ........ ............. . ..... ......... ......... ...... ........., ...., ......, .......... . .... ... ....... ...... ..... ........ ... ........ ...... ............ ........ ......... ........ ........ . ........... ........... .... ....... - . ............ ...... ........ ....... ......... ... .......... ...... ...., ........ ....... ...... .............. . ......

.. ....... ...... ........., ... ........ .... ......... ......... (...... ....., ...... ...., ......) ..... ........ 4 ........... .......... - ...... ......, .......... ....... ......, .......... ......, ...... ....... ..... ......., ........ ............ ... ...... ........ ..... .. ......... .... .......:

 <!-- .... ...... -->
 <primitive name="solidcolor">
    <parameter name="x" value="0" />
    <parameter name="y" value="0" />
    <parameter name="w" value="&cxv_w;" />
    <parameter name="h" value="&cxv_h;" />
 </primitive>
 <!-- ...... .... -->
 <primitive name="solidcolor">
    <parameter name="x" value="0" />
    <parameter name="y" value="0" />
    <parameter name="w" value="&cxv_w;" />
 <!-- cxv_buttonh - .........., .......... ...... ...... -->
    <parameter name="h" value="&cxv_buttonh;" />
 </primitive>
 <!-- ...... ..... -->
 <primitive name="solidcolor">
    <parameter name="x" value="0" />
 <!-- cvx_buttony - .........., .......... y-.......... ...... "....." -->
    <parameter name="y" value="&cxv_buttony;" />
    <parameter name="w" value="&cxv_w;" />
 <!-- cvx_buttonh - .........., .......... ...... ...... -->
    <parameter name="h" value="&cxv_buttonh;" />
 </primitive>
 <!-- ...... -->
 <primitive name="solidcolor">
    <parameter name="x" value="0" />
 <!-- cvx_slidery - .........., .......... y-.......... ...... -->
    <parameter name="y" value="&cxv_slidery;" />
    <parameter name="w" value="&cxv_w;" />
 <!-- cvx_sliderh - .........., .......... ...... ...... -->
    <parameter name="h" value="&cxv_sliderh;" />
 </primitive>

.......... ...... - ... ............. ... ............ ........., ... .......... ........ ........ ..........., ........ .....

......... ...... ........ ....... . ......... .... .. ..... ....... ...... ... ..........., .. ....... ........ ....... ...., . ........ ....... ............ ...... ..... ........ .......... ..... ......... .......... ... ....... ....... ......... ........ - ........ .... ... ........ ........ ...... ... ................ ........... ........ .. ......, . .. ........ ... ... ........ ... ........ ...... - ........... ..... ....... ... ........ . ........ .... (........, ....).

.............. ....... ............ ....... . ..... ........ ............ ... ...... ........ ....... ... ... .......... ...... ...., .. ... ........... .......... ......... ... .... ......... .......... ........ ..... ........ .. .................. ....... . ......... ............ ... ...... ........ ....... . ............... .......... ........... .......... . ...... ........ . ............ . ........ ........ ......... ....... ............ .......... ...... ...., .............. . ......., .. .............. . ........ ...... .......... ....... - ... ...............

8. .....

.. ...... ...... . ....... ....... ........, ....... ............... ........ ......., . ....... ......... ....... ("WC_SPINBUTTON"). ... .. ............ ............ ... .......... ..... ...... ... .......... ..... ............... ........, ... ........ . ........ ..... ........., ............ ........ ......

9. ............. .........

............ ..... ............ ....... ............. . ............. ...... ............. ........... ..... ....., ...... . ...... ......... ..... .......... ... . .... ........, ... . . .... ...... .. ........... ........... ........, ... ...., . ....... ... .......... ......... ...... . .... ........, ..... ..... ........, ......... . ......... ..... . .. .. ....., ..... .. ...... ...... ... ......... . .... .........., ....... ..... ........... ... . .......... ........... ............, ... . . ........ .......... . ........ ........ ........ .......... ..... .......... . ..... .......... .. ....... ......., . ........ ..... .......... ............. .... (........, ......... ......), .......... ........ ......... . ..... .........., ......... ... ............. . ......... ..... ........ ...... .... ............. .. ............ ...... ... .............. ...., . ......... ... ........., .......... ... ............ ......... . ......... ..... ......... ...... .........:

  • ............... ........ .......... (........, .. ...... ......);
  • ... .......... (...., ........, ....., ....., ......., ...... . ....);
  • ........ .. ..........

...... ............. ........ ..........:

 <!-- parameters.xml -->
 <sch:class name="pushbutton">
    <sch:name xml:lang="en">Push button</sch:name>
    <sch:name xml:lang="ru">......</sch:name>
    <sch:parameter value="cxv_backgroundcolor">
       <sch:name xml:lang="en">Button color</sch:name>
       <sch:name xml:lang="ru">.... ......</sch:name>
       <sch:type value="color" />
       <sch:value value="#808080" />
    </sch:parameter>
    <sch:parameter value="cxv_foregroundcolor">
       <sch:name xml:lang="en">Text color</sch:name>
       <sch:name xml:lang="ru">.... ......</sch:name>
       <sch:type value="color" />
       <sch:value value="#0" />
    </sch:parameter>
    ...
 </sch:class>

..... ........ .......... (........ ........ "value" .... "parameter") ...... .......... _.._ . ....... ........ (entity). ......... ..... ....... .......... ..... .... ........... ...... ... ......, ...... ........ ........ ... .... ........... ... ........ .........., ............ . ...... "<window>" ........ ..... ............ ............ ... "<sch:window>" ...... "<sch:class>". ............ ..... ....... .......... .. ..... .... ........ .......... SYSCLRs, ......... . ....... ...... PM. ... ........ .......... ... ......... ...... ... .... ............ ............ ... "<sch:section>" . ........ ........, ........... ............ ..... ....... ....... .........., ......... . ...... "<sch:section>" .. ..., ....... ....... . "<sch:window>" . "<sch:class>" . ..., ... ... .......... ... ......-.... ........., . ..... .... .. .... .......... ........ ...... . ......, ..... .......... . ..... . ... .. ...... .......... . ......... ......, .... . ..... ......, ......... .............. ......... .......:

  • 1. ....;
  • 2. .....;
  • 3. ..... .......

.............. .......... ...... "<sch:section>" - ........... ..... .......... ....., .. ........... . ............. ...... ... ...., .... ......... ....... .......... .. ........... ..... .............. ...... ..... .... ......... ... ........... ........... .......... ........... .......... . .... ......... ......

........... .......... . ..... . ... .. ...... ......... ... . ........:

  • ..... ...... "<sch:window>";
  • ..... ...... "<sch:class>";
  • .... ...... "<sch:section>"

........ ........

10. ..... ..........

........ .............. ......... ............ ........... . .... ....... . ....... ...... .... ........ ...... (.......... ..... ....... WinDefWindowProc ....... ...... PM). ........ ..... .............. . ......... ...... PM ............ ....... . ...... Paint (WM_PAINT), ................ . ...... .... ........ ....... ..... ........ ...... ..... ...... ..... ............... ...... ......... ......... .......:

 1. ......... ..... ... ........ ....
 2. .... ...... (........, .... ... .... .. .........), ..
 3.   ......... ..... ... ........ ...... ....
 4.   .... ...... (........, .... ... ...... .. .........), ..
 5.      .... ....... ..... .... ..... ...... ........ ......,
 5.         .. ....... . .......
 6.      .......... ....., ....... .... .. ........, . ..3
 7. ........ .......

..... ......., ........ ..... ........ ... ............. . ..... ....... ... ............ .......... ................ ......... .... ........... ..., ... ........ ...... .... .......... . ...... .... ........ ......, ....... ........ .................. . ........... (...............) ....... ........ ...... .... .........:

  • 1. ..... .......... ...........
  • 2. .... ...... ..., .......
  • 3. ...... ......... ........

. ..1 .......... ......... ........., .......... ...., ....... ............. ....... .. ...... ........ ...... .... ............ ...... . ........, .......... ...... ......... ........ .. ...... .. ......... ....... .........., .. ......... . .......... .......... .... ........ ........ ......... ................. ................. .......... .... ... ........... ....... . ......... ........., ............ ... ..-.. ...... . .......... ........., ... . ..-.. ................ ...... (............ ...., .......... ......, ............ ... ........ . ....) ([A11]).

Test the program:

Virtual keyboard - on-screen virtual keyboard (useful for touchscreens, to input special characters)

Comments:

arec
2008-04-15 03:17:02

..... eComStation ............ . ........ ReactOS ... ..... ........ ............. . ..... ..... ....

. -.. ... . ....... ... . ... ... .. ..... ... . .... ..... .... . .... ...... . ....... .... ...... . ...... ... .......... ....

Sergey Posokhov
2008-04-15 12:25:27

. . ... .. ........ :-) ..... ...., ........ Rexx, ........... ....... ..... ......, . ... ..... .... . .... PM123. ... ............. . ... .. .. . .......... .....?

Comment this article.


Vaše jméno:

Váš E-Mail:

CODE:
544173......

  

Váš pøíspìvek:


eCo Software is a group of russian developers.
How to support eCo Software? (you can send us some computers. Maybe you don't use the device but it may be useful for the developers). We have the mailboxes in USA, Netherlands, China and Hong Kong.

Èlánky

Operaèní systém
Software
Hardware
Pro programátory
Ostatní
Od editora





Last active poll: What is the height of RPM barrier?

[Google]

IBM OS/2 Warp

 
For dummies

Database of OS/2 compatible hardware

 
Reviews


     
  Why eComStation?
Features
Advantages
Usage
Clips and screenshots
   eComStation for
for businessmen
for students and engineers
for reselles of computers
community of users
   Developer
Distribute the program
Description of API, libraries
Start new project
Competition
   Applications
On-line catalogue
Select from eCo Market
   Support service
Contact the web-master
Buy eComStation
Frequently asked questions
for Beginners
 
 
© 2001 - 2025 eCo Software, All rights reserved
óÉÂÉÒÓËÉÊ íÅÄ×ÅÄØ **********
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae