                            Cell Toolkit.
                                v.06c


    Cell Toolkit   ⥪  ᪮७ ᮧ ணࠬ
     OS/2 PM.  ᮡ ⮩ ⥪ ⮨ ⭥ ᫥饥:

    - প ⠪ 뢠 'Split View'
    - প 㫡஢  મ   ࠭  ணࠬ.
    - প "쪮" ᪠
    -  ᯮ짮
    - ॠ  ⮬ C,  ⮬  ଠ쭮
        ० C++
    - ᯮ짮 ⮫쪮 OS/2 PM API

    祬   㦭? ० ᥣ,  ⥪   
᥮ꥬ饥. ⮬   ।  ᯮᮡ  ᮧ
 ணࠬ. ஬ ⮣, ࠧ  ⮬ 砥  
祭, - 祣 , ᮡ⢥,  뫠 ᤥ   API 
ਬ 祣- ⮢  ⢥ .

      ⥯  浪. ᭮    ᭮ Cell Toolkit - ,
 类   ࠧ  ,   ਧ⠫,   ⨪.
⥬  ⮩   뫨 楯 窨   ⥩
  ࠭ ய樨 ⥩ , ᯫ⡠,  䨪஢
ࠧ ,  .. ⥬ 뫨  㫡,   મ 
  ࠭ . ,  ᠫ ᪮쪮 ਬ஢, ,
 ,  ࠧ  ⥪.

     ⥫ .

     㦥 㯮 , ᭮  - 类   ࠧ
 .
	ਬ ⠪:

+---------+
|         |
+---------+
|         |
+---------+

     ⠪:

+----+----+
|    |    |
|    |    |
|    |    |
+----+----+

    ᫨ ࠧ   ,   , ਬ,
 ⠪ :

+----+----+
|    |    |
+----+----+
|         |
+---------+

    , ਬ, 룫廊 ⠫ ᮢ  Netscape 2.02.
  ⠪ 룫廊 PMMail 2.0:

+---+-----+
|   |     |
|   +-----+
|   |     |
+---+-----+

.1

      㤭      ᠬ split view.
祭 㤮  ᯮ짮,  쭮 । ॠ㥬 襭.
  ᠬ   ᮡ ᫮⥩ . ﭥ  
Cell Toolkit.


    ७ Cell Toolkit.

    ⥪ ⮨    ⥩, 쭮 ⭮ ९⥭
 ᮡ. ࢠ - ᮡ⢥ প split view,  - 㫡.

     ॠ樨 split view  ࠭ ᫥騩 室. , ஥
 ᮤঠ split view ࠧ  祩, ਬ  ⠪ 
஥ ࠦ  .1 ⠪ ࠧ 룫廊 ⠪:

        +---------+
        |         |   
        |         |
        |         |
        +---------+
            / \
           /   \         +-----+   
      +---+     +---+  / |     |
      |   |     |   | /  +-----+
      |   |     |   | \  +-----+   
      |   |     |   |  \ |     |
      +---+     +---+    +-----+
           ࠢ
          


    ஬ ⮣,  ﬨ 室 ᯫ⡠,  ᯥ稢
 짮⥫  ᮮ⭮襭 ࠧ஢ .
    ⥬ 楫묨 ,   ந室 ॠ쭠 ࠡ
짮⥫: । ⥪, ᬠਢ ᯨ᪨  ..
᪫祭   砥 ।⠢ ᮡ ࠢ , ᪮
  ३   split view.  ,
    ࠧ   : ३   .
	 ॠ樨 ३ ᯮ 筮   
४ ᥡ 孨 subclassing.  , 
- ⠭     ࠡ稪 ᮮ饭
 १ 祣    ⠪ .
  ३, ⢥ ;-)  室騬 ⮬ 
Frame Window.     㦭   ।,
⠪  ࠢ쭮 ࠧ  .  ⮣ 筮
墠  ᮮ饭:

WM_QUERYFRAMECTLCOUNT
WM_FORMATFRAME

ࢮ ᮮ饭 頥 ⢮ 稭 ,
 ஥ ।⢥ ⢥砥  㪫  ⮢  頤 .
஡    㭪樨 CellProc.

    ⠥    ᯫ⡠஬.  , ᠬ ⮥
襭  ॣ ᮮ⢥饣    ᮧ ३
 ⢥   ᪮  㪠뢠  .  ⭮
頥 , ᪮ ﬨ  ⨬   ᭮ 祭
 ࠡ稪 Frame Window. ,  㦭 -  ࠢ쭮 ⠭
ࠧ ᯫ⡠  ࠡ⪥ WM_FORMATFRAME,    ᮢ
  宦    ᯫ⡠஬    
.    ,   ⮦ ⢥砥 ᯫ⡠: 
ࠧ஢ . ⠫  ⢨    㭪樨 CellClientProc.

       㫡. ।⢥ 㫡 -  ⮦ ३,
 ஬ ᯮ .    Push Button. -
筮   , ஬, , "쪮" ᪠. 祬
 ᤥ 筮 ࠤ樮 ᯮᮡ (subclassing),
 孨 ᮧ ⠪ ᪠ 뫠  ⠫ ᠭ   
᪮ EDM/2.
     ॠ樨  ᮥ/ᮥ 㫡  諮
த뢠 -  . ,  筮 
-த⥫  㫡     ᭮  ॢ
 ᮬ   ,  ᨬ  ⠭  
ணࠬ.

     ᡮન ⥪  ਬ஢ :

    -  C (஢७ VAC++, Watcom C++ 10.0a  10.6,
      Borland C++ 2.0, EMX 0.9c);
    - Borland MAKE (  BC  Tasm) 
    - grep (஢७ GNU  Borland);
    - mv (GNU file utils).
    - makedep (ᠭ Walter Bright   䨪ﬨ),
       ୨ 室   娢
    - EXEHDR  Toolkit.

    ⢥,  ⥪ ()   .H 䠩   .C 䠩,
  ᫥  㦭  ᡮન ਬ஢. 騩  
makefile ⮢  㯮ॡ   Watcom 10.x.

    ઠ  㣨     ⠯:

    - ᪠ build.cmd,  ந makefile
      ( ࠢ   build.cmd  ࠬ஬ -?),
    - ᪠ make  祣 -   :)


     ⪮ 㪮⢮  ᯮ짮:

 ᮧ  室 ⮢  ⨯ CellDef (. cell.h):

typedef struct stCellDef
{
    LONG lType;
    PSZ  pszClass;
    PSZ  pszName;
    ULONG ulStyle;
    ULONG ulID;
    struct stCellDef* pPanel1;
    struct stCellDef* pPanel2;
    PFNWP pClassProc;
    PFNWP pClientClassProc;
    LONG  lSize;
} CellDef;

lType:   ⨯  䫠 ⢥騥  ࠧ  .
        㪠 䫠 CELL_WINDOW 砥,   㤥 祩  ࠢ騬
        ⮬ (஫),  ⨢ 砥 (  CELL_VSPLIT 
        CELL_HSPLIT) -  ⥩  祥.
        㣨 䫠 ᠭ .

pszClass:   ,  ⠭ ஫   ⠭
         ਨ WC_ (WC_BUTTON, WC_MLE, ...).     
        ᮡ⢥  .  ࠬ   ३.
         ⮬ 砥 ᥣ ᮧ WC_FRAME.

pszName:  ࠬ ⠭ Window Text ᮧ .
        ᫨  ᮢᥬ ,   ।    
        ࠬ஢ WinCreateWindow.  ⮬    㫪.

ulID   : 䨪 .

ulStyle: ,  ⠪, 䫠   ।  WinCreateWindow.
          મ:  ⥩ 祥  䫠  ਨ FCF_,
        騥 譨    ࠬ .

pPanel1, pPanel2: 㪠⥫  ᠭ 祥 ᮤঠ  ⥩. 
        㪠⥫  ந஢, ᫨ 㪠 䫠 CELL_WINDOW.

pClassProc:  楤,  㤥  ⠭ 楤 .
         ⮩ 楤   㪠⥫  ⠭ ࠡ稪
        ᮡ⨩ , ⠢   WinQueryWindowULong() 㪠⥫ 
        .   ⫨砥  ⥩ 祥  祥.
         祥  WindowCellCtlData,   - CellCtlData.
          ।祭  ७ ᯮ짮  
        砭 ࠡ⪨ ᮮ饭 室 뢠  ⠭
        ࠡ稪 (CellCtlData->pOldProc),  CellProc.   砥, ᫨
           ⠪ 㡮,   ਤ ⠫쭥 ᬮ
        室 ⥪ cell.c.

pClientClassProc:  楤,  㤥  ⠭ ࠡ稪
        ᮮ饭 ᪮   ⥩ 祥.  ⠫쭮
        ᬮ 室 ⥪ cell.c, 楤 CellClientProc.

lSize:    ࠧ   祥. ਬ:  ࠧ 
        ⨪   㤥 ਧ⠫ ࠧ   祥,
         ᨬ  ⮣,  䫠 㪠  lType.  CELL_SIZE1
         㤥 ࠧ  祩,  CELL_SIZE2 - ࠢ.
         ࠧ  ਧ⠫   㤥, ᮮ⢥⢥,
        ࠧ   孥 ⥩.

  ਨ CELL_


CELL_WINDOW      - 祩   (஫)
CELL_VSPLIT      - ⥩ 祥   ⨪
CELL_HSPLIT      - ⥩   ਧ⠫
CELL_SPLITBAR    - ⥩ ᮤন splitbar
CELL_FIXED       -   ,   稨 splitbar
CELL_SIZE1       -  ࠧ 㪠   1 (  )
CELL_SIZE2       -  ࠧ 㪠   2 (  ࠢ)
CELL_SPLIT10x90  -\
CELL_SPLIT20x80  -|
CELL_SPLIT30x70  -|
CELL_SPLIT40x60  -|
CELL_SPLIT50x50  - >  騥 砫쭮 ⭮襭 ࠧ஢ 祥
CELL_SPLIT60x40  -|
CELL_SPLIT70x30  -|
CELL_SPLIT80x20  -|
CELL_SPLIT90x10  -/

ਬ,  CellDef,  ⠪ ࠧ:

CellDef lPanel =
{
    CELL_VSPLIT | CELL_SPLITBAR | CELL_SPLIT70x30,
    0,
    "",
    WS_VISIBLE,
    ID_LPANE,
    &uPanel,
    &dPanel
};

ᮧ ࠧ  ⨪ ,  யﬨ   ࠢ ⥩
70  30   ᠭﬨ ७⥩   ᮮ⢥ .

ਬ ⠪     multibar.c.
   ਬ஢ ᯮ짮 ⮩ 孨 ਢ  nbsample.c.

⥬ ᯮ ᠭ ⠪ ࠧ    ᮧ  
㭪樨 CreateCell. ஬ 㪠⥫  -⥫,  । 
奭 : த⥫  . ( ,    ࠧࠫ  ࠧ
 : த⥫ -   , ஥ ଠ쭮  ,
  ⢥砥     ࠭, ᪮ न ᮧ
 뢠  த⥫,    㭨⮦.  -  
, ஥ 㤥  ᮮ饭, 筥 㢥   .
ਬ, ,  ன த⥫ 㪠 ⮯,  楬  襩
ணࠬ, 㤥 ᯮ  ⮯,  ᮮ饭   ⨨ 㤥
 楤 ࠡ⪨ ᮮ饭   襩 ணࠬ).
   筮 㪠뢠 த⨫ HWND_DESKTOP,  楬 0.
⠫ ᮧ 祥  ᬮ  cell.c, 楤 CreateCell.

      ᮧ 㫡஢.

 ᮧ 㫡, 室   TbDef.  ⢥
  ᮤন ᥣ  :

typedef struct
{
    LONG  lType;   // Toolbar flags
    ULONG ulID;    // Toolbar window ID
    ULONG *tbItems;
} TbDef;

lType  : 䫠.
ulID   : 䨪 㫡.
tbItems: 㪠⥫  ᠭ .


TB_BUBBLE      - 㫡  쪮 ᪠
TB_VERTICAL    - ᯮ ⨪쭮
TB_FLOATING    -  ᮥ  .
TB_ATTACHED_LT - ᮥ ᫥
TB_ATTACHED_TP - -//-//-//-- ᢥ
TB_ATTACHED_RT - -//-//-//-- ࠢ
TB_ATTACHED_BT - -//-//-//-- ᭨

ᠭ  -  ᨢ ULONG-,     ID , 
蠥 0. 樠 ID TB_SEPARATOR  ࠧ⥫  
 .     䠩 ᮢ   ਯᥭ ⬠
 ⠪  ID (ᬮ ਬ ணࠬ).  TB_SEPARATOR   㦥.
᫨  㫡 㪠 䫠 TB_BUBBLE,  易⥫쭮 稥  䠩
ᮢ  ⨯ STRINGTABLE,  ᮮ⢥騬 ID.

㫡 ᮧ   맮 CreateToolbar  ⠭  .
 娭⮢:
    ᮥ 㫡  ४ ⨪ / ਧ⠫
    ⥬     誨  "窥".
    쪮 ᪠  /몫 (᫨  뫠 ।ᬮ७)
    ⥬   ࠢ  誨  "窥".

    ᪮쪮 ᫮  襭.

    祢,      ⢥⢥  ᨥ 㤮 ࠦ
孮, ᬮ   ⢮ :)  饬, ⭮.

     ᪮쪮 ()      ࠡ⪠.
  ⮨   ண ⢠ 㫡஢  㬥襭
ࠧ஢ ,  ⠪  樨/⠭.  ࠤ ᫨ -
㬥 ᪮ 稭 ⮩ ᠤ ஡  ᮮ .
    ࠡ⪠ ⮨   ⢨ ᭮ ப  ⤥쭮
魮  ⥪. ᬮ  status.c  ᪠,  㦭 ?

    , 짮 Cell Toolkit  ᮢ襭 ᢮,  ᫮,
࠭  ()   ᫮,    㤥   
credits 襩 ணࠬ.

     砭, , ९, 䨪, , , 죨  
⪨  ࠢ :

    e-mail: evsi@naverex.kiev.ua
    FIDO  : 2:463/114.69
    Sergey I. Yevtushenko.

