home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pgehdl.zip / pagehdl < prev    next >
Text File  |  1996-02-27  |  319KB  |  10,084 lines

  1. # makefile
  2. # Created by IBM WorkFrame/2 MakeMake at 12:38:33 on 2 Feb 1996
  3. #
  4. # The actions included in this make file are:
  5. #  Compile::C++ Compiler
  6. #  Link::Linker
  7. #  Bind::Resource Bind
  8. #  Compile::Resource Precompile
  9. #  Compile::Resource Compiler
  10.  
  11. .SUFFIXES: .cpp .obj .rc .rcx .res 
  12.  
  13. .all: \
  14.     .\target.exe
  15.  
  16. .cpp.obj:
  17.     @echo " Compile::C++ Compiler "
  18.     icc.exe -DIC_TRACE_DEVELOP /Ti /Gm /Gd /C %s
  19.  
  20. .rcx.rc:
  21.     @echo " Compile::Resource Precompile "
  22.     icc.exe -c /Pc+ /Pe+ /Pd /I. %s > %|dpfF.rc
  23.  
  24. .rc.res:
  25.     @echo " Compile::Resource Compiler "
  26.     rc.exe -r %s .\%|fF.RES
  27.  
  28. .\target.exe: \
  29.     .\test.obj \
  30.     .\vbmain.obj \
  31.     .\PgHndler.obj \
  32.     .\test.res
  33.     @echo " Link::Linker "
  34.     @echo " Bind::Resource Bind "
  35.     icc.exe @<<
  36.     -DIC_TRACE_DEVELOP 
  37.      /Tdp 
  38.      /Gm /Gd 
  39.      /B" /de /st:64000 /pmtype:pm"
  40.      /Fetarget.exe 
  41.      .\test.obj
  42.      .\vbmain.obj
  43.      .\PgHndler.obj
  44. <<
  45.     rc.exe .\test.res target.exe
  46.  
  47. .\test.obj: \
  48.     F:\toydev\pagehdl\test.cpp \
  49.     {F:\toydev\pagehdl;$(INCLUDE);}test.hpp \
  50.     {F:\toydev\pagehdl;$(INCLUDE);}test.h \
  51.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpp \
  52.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.h \
  53.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpv
  54.  
  55. .\PgHndler.obj: \
  56.     F:\toydev\pagehdl\PgHndler.cpp \
  57.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpp \
  58.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.cpv \
  59.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.h \
  60.     {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpv
  61.  
  62. .\vbmain.obj: \
  63.     F:\toydev\pagehdl\vbmain.cpp \
  64.     {F:\toydev\pagehdl;$(INCLUDE);}test.hpp \
  65.     {F:\toydev\pagehdl;$(INCLUDE);}test.h
  66.  
  67. .\test.rc: \
  68.     F:\toydev\pagehdl\test.rcx \
  69.     {$(INCLUDE)}test.rci
  70.  
  71. .\test.res: \
  72.     .\test.rc
  73. :TARGET.SUFFIXES
  74. :DEPENDENCY..cpp .obj .rc .rcx .res 
  75. :TARGET.all
  76. :DEPENDENCY.
  77. .\target.exe
  78. :RULE..cpp.obj
  79. :ACTION.Compile::C++ Compiler
  80. :COMMAND.
  81. icc.exe -DIC_TRACE_DEVELOP /Ti /Gm /Gd /C %s
  82. :RULE..rcx.rc
  83. :ACTION.Compile::Resource Precompile
  84. :COMMAND.
  85. icc.exe -c /Pc+ /Pe+ /Pd /I. %s > %|dpfF.rc
  86. :RULE..rc.res
  87. :ACTION.Compile::Resource Compiler
  88. :COMMAND.
  89. rc.exe -r %s .\%|fF.RES
  90. :TARGET..\target.exe
  91. :DEPENDENCY.
  92. .\test.obj
  93. .\vbmain.obj
  94. .\PgHndler.obj
  95. .\test.res
  96. :ACTION.Link::Linker
  97. :COMMAND.
  98. icc.exe @<<
  99. -DIC_TRACE_DEVELOP 
  100.  /Tdp 
  101.  /Gm /Gd 
  102.  /B" /de /st:64000 /pmtype:pm"
  103.  /Fetarget.exe 
  104.  .\test.obj
  105.  .\vbmain.obj
  106.  .\PgHndler.obj
  107. <<
  108. :ACTION.Bind::Resource Bind
  109. :COMMAND.
  110. rc.exe .\test.res target.exe
  111. :TARGET..\test.obj
  112. :DEPENDENCY.
  113. F:\toydev\pagehdl\test.cpp
  114. {F:\toydev\pagehdl;$(INCLUDE);}test.hpp
  115. {F:\toydev\pagehdl;$(INCLUDE);}test.h
  116. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpp
  117. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.h
  118. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpv
  119. :TARGET..\PgHndler.obj
  120. :DEPENDENCY.
  121. F:\toydev\pagehdl\PgHndler.cpp
  122. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpp
  123. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.cpv
  124. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.h
  125. {F:\toydev\pagehdl;$(INCLUDE);}PgHndler.hpv
  126. :TARGET..\vbmain.obj
  127. :DEPENDENCY.
  128. F:\toydev\pagehdl\vbmain.cpp
  129. {F:\toydev\pagehdl;$(INCLUDE);}test.hpp
  130. {F:\toydev\pagehdl;$(INCLUDE);}test.h
  131. :TARGET..\test.rc
  132. :DEPENDENCY.
  133. F:\toydev\pagehdl\test.rcx
  134. {$(INCLUDE)}test.rci
  135. :TARGET..\test.res
  136. :DEPENDENCY.
  137. .\test.rc
  138. <áP0AvlFileHeaderfileType version êbinary⌐.
  139. V╧ÇΘ<áP╚*PK
  140. ╥dB k]ëkmakefile#67hëÜ█<D┼÷û≈GélvmY│i┘ûm¿`yò[6,▌▓dAè═ 2⌐╨ª »╛ò╗╓¿▄░m╦╛ö    ▓ë∙OαdLÖ:gΓ▐3A╛u "{-+&zτ╠i╪å%U4π?ûnÜφ=dZ╖c┘╓%m╚$]┤iτ░sφB|⌐kεc^┐m ·uΩ║rs.'╗3⌐▀k¼W±Ç.à(o2╨[j┘╣oδ╩[╞╣    C╨NCΘ╓c¿+≡`í#é╖╦⌐Uì/*******************************************************************************
  141. * FILE NAME: PgHndler.cpp                                                      *
  142. *                                                                              *
  143. * DESCRIPTION:                                                                 *
  144. *   Class implementation of the class:                                         *
  145. *     APageHandler- Notebook page handler                                      *
  146. * ---------------------------------------------------------------------------- *
  147. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  148. * Modifications to this source file will be lost when the part is regenerated. *
  149. *******************************************************************************/
  150. #ifndef _INOTIFEV_
  151. #include <inotifev.hpp>
  152. #endif
  153.  
  154. #ifndef _IOBSERVR_
  155. #include <iobservr.hpp>
  156. #endif
  157.  
  158. #ifndef _ISTDNTFY_
  159. #include <istdntfy.hpp>
  160. #endif
  161.  
  162. #ifndef _APAGEHANDLER_
  163. #include "PgHndler.hpp"
  164. #endif
  165.  
  166. #ifndef _IVBDEFS_
  167. #include <ivbdefs.h>
  168. #endif
  169.  
  170. #ifndef _ITRACE_
  171. #include <itrace.hpp>
  172. #endif
  173.  
  174.  
  175. #pragma export (APageHandler::readyId)
  176. const INotificationId APageHandler::readyId = "APageHandler::readyId";
  177.  
  178. //------------------------------------------------------------------------------
  179. // APageHandler :: APageHandler
  180. //------------------------------------------------------------------------------
  181. #pragma export (APageHandler::APageHandler())
  182. APageHandler::APageHandler()
  183. {
  184.  
  185.    initialize();
  186. }     //end constructor
  187.  
  188.  
  189. //------------------------------------------------------------------------------
  190. // APageHandler :: ~APageHandler
  191. //------------------------------------------------------------------------------
  192. #pragma export (APageHandler::~APageHandler())
  193. APageHandler::~APageHandler()
  194. {
  195.  
  196. }
  197.  
  198. //------------------------------------------------------------------------------
  199. // APageHandler :: initializePart
  200. //------------------------------------------------------------------------------
  201. #pragma export (APageHandler::initializePart())
  202. APageHandler & APageHandler::initializePart()
  203. {
  204.    makeConnections();
  205.    notifyObservers(INotificationEvent(readyId, *this));
  206.    return *this;
  207. }
  208.  
  209.  
  210. //------------------------------------------------------------------------------
  211. // APageHandler :: makeConnections
  212. //------------------------------------------------------------------------------
  213. #pragma export (APageHandler::makeConnections())
  214. Boolean APageHandler::makeConnections()
  215. {
  216.    this->enableNotification();
  217.  
  218.    return true;
  219. }
  220.  
  221.  
  222. #include "PgHndler.cpv"
  223.  
  224.  
  225. // Feature source code generation begins here...
  226. INotificationId APageHandler::previousPageNumberId = "APageHandler::previousPageNumber";
  227. INotificationId APageHandler::currentPageNumberId = "APageHandler::currentPageNumber";
  228.  
  229. INotificationId APageHandler::page1SelectedEventId = "APageHandler::page1SelectedEvent";
  230. INotificationId APageHandler::page2SelectedEventId = "APageHandler::page2SelectedEvent";
  231. INotificationId APageHandler::page3SelectedEventId = "APageHandler::page3SelectedEvent";
  232. INotificationId APageHandler::anyPageSelectedEventId = "APageHandler::anyPageSelectedEvent";
  233.  
  234. int APageHandler::previousPageNumber() const
  235. {
  236.   return iPreviousPageNumber;
  237. }
  238.  
  239. APageHandler& APageHandler::setPreviousPageNumber(int aPreviousPageNumber)
  240. {
  241.   if (!(iPreviousPageNumber == aPreviousPageNumber))
  242.   {
  243.     iPreviousPageNumber = aPreviousPageNumber;
  244.     notifyObservers(INotificationEvent(APageHandler::previousPageNumberId, *this));
  245.   } // endif
  246.   return *this;
  247. }
  248.  
  249. int APageHandler::currentPageNumber() const
  250. {
  251.   return iCurrentPageNumber;
  252. }
  253.  
  254. APageHandler& APageHandler::setCurrentPageNumber(int aCurrentPageNumber)
  255. {
  256.   if (!(iCurrentPageNumber == aCurrentPageNumber))
  257.   {
  258.  
  259.     ITRACE_DEVELOP(" aCurrentPAgeNumber " + IString(aCurrentPageNumber));
  260.  
  261.     iCurrentPageNumber = aCurrentPageNumber;
  262.     notifyObservers(INotificationEvent(APageHandler::currentPageNumberId, *this));
  263.     notifyObservers(INotificationEvent(APageHandler::anyPageSelectedEventId, *this,
  264.                                        true, (void*) iCurrentPageNumber ));
  265.     switch (currentPageNumber()) {
  266.        case 1:
  267.           notifyObservers(INotificationEvent(APageHandler::page1SelectedEventId, *this));
  268.           break;
  269.  
  270.        case 2:
  271.           notifyObservers(INotificationEvent(APageHandler::page2SelectedEventId, *this));
  272.           break;
  273.  
  274.        case 3:
  275.           notifyObservers(INotificationEvent(APageHandler::page3SelectedEventId, *this));
  276.           break;
  277.  
  278.     } // end switch
  279.  
  280.   } // endif
  281.   return *this;
  282. }
  283.  
  284. APageHandler& APageHandler::handleFor(INotebook* notebk)
  285. {
  286.   nbPageHandler.IPageHandler::handleEventsFor(notebk)  ;
  287.   return *this;
  288. }
  289.  
  290. APageHandler& APageHandler::stopHandleFor(INotebook* notebk)
  291. {
  292.   nbPageHandler.IPageHandler::stopHandlingEventsFor(notebk);
  293.   return *this;
  294. }
  295.  
  296. // Feature source code generation ends here.
  297.  
  298.  
  299.  
  300. // added code starts here ****************
  301.  
  302.  
  303. Boolean APageHandler::MyPageHandler::select( IPageSelectEvent& pageevent)
  304.  {
  305.  
  306.    int bothfound = 0;
  307.    int i =1;
  308.    INotebook::Cursor cursor(*(pageevent.notebook()));
  309.  
  310.   // walk thru all pages in the notebook to find the previous page and the selected page
  311.  
  312.    for (cursor.setToFirst();cursor.isValid();cursor.setToNext()) {
  313.  
  314.  
  315.    // find the page number for the previous page
  316.       if (pageevent.previousSelectedPageHandle() == cursor.current() ){
  317.          outerPgHandlerNv->setPreviousPageNumber( i );
  318.          bothfound += 1;
  319.       }
  320.  
  321.    // find the page number for the current page
  322.  
  323.       if (pageevent.pageHandle() == cursor.current()) {
  324.          outerPgHandlerNv->setCurrentPageNumber( i );
  325.          bothfound += 1;
  326.       }
  327.  
  328.     // if both previous and current page are found, exit the for loop
  329.  
  330.       if ( bothfound == 2 )
  331.          break;
  332.       else
  333.          i += 1;
  334.  
  335.     } // end for(cursor)
  336.  
  337.    return false;   // pass the PM page selected message up the owner chain ,
  338.                    // just in case there is a handler that wants to process this message
  339.  
  340.  } //   APageHandler::MyPageHandler::select
  341.  
  342.  
  343. // added code ends here *************
  344.  
  345. /*******************************************************************************
  346. * FILE NAME: PgHndler.h                                                        *
  347. *                                                                              *
  348. * DESCRIPTION:                                                                 *
  349. *   Constant declarations for class:                                           *
  350. *     APageHandler- Notebook page handler                                      *
  351. * ---------------------------------------------------------------------------- *
  352. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  353. * Modifications to this source file will be lost when the part is regenerated. *
  354. *******************************************************************************/
  355. #ifndef _ICCONST_
  356. #include <icconst.h>
  357. #endif
  358.  
  359. #ifndef _IVBDEFS_
  360. #include <ivbdefs.h>
  361. #endif
  362.  
  363. #ifndef WND_APageHandler
  364. #define WND_APageHandler  VBBASEWINDOWID
  365. #endif
  366.  
  367.  
  368. /*******************************************************************************
  369. * FILE NAME: PgHndler.hpp                                                      *
  370. *                                                                              *
  371. * DESCRIPTION:                                                                 *
  372. *   Declaration of the class:                                                  *
  373. *     APageHandler- Notebook page handler                                      *
  374. * ---------------------------------------------------------------------------- *
  375. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  376. * Modifications to this source file will be lost when the part is regenerated. *
  377. *******************************************************************************/
  378. #ifndef _APAGEHANDLER_
  379. #define _APAGEHANDLER_  
  380.  
  381. class APageHandler;
  382.  
  383. #ifndef _ISTDNTFY_
  384. #include <istdntfy.hpp>
  385. #endif
  386.  
  387. #ifndef _IPAGEHDR_
  388. #include <ipagehdr.hpp>
  389. #endif
  390.  
  391. #ifndef _IPAGEEVT_
  392. #include <ipageevt.hpp>
  393. #endif
  394.  
  395. #ifndef _INOTEBK_
  396. #include <inotebk.hpp>
  397. #endif
  398.  
  399. #ifndef _ITRACE_
  400. #include <itrace.hpp>
  401. #endif
  402.  
  403. #include "PgHndler.h"
  404.  
  405.  
  406. /*----------------------------------------------------------------------------*/
  407. /* Align classes on four byte boundary.                                       */
  408. /*----------------------------------------------------------------------------*/
  409. #pragma pack(4)
  410.  
  411. //*****************************************************************************
  412. // Class definition for APageHandler
  413. //*****************************************************************************
  414. class APageHandler : public IStandardNotifier {
  415. public:
  416.    //---------------------------------------------------------------------------
  417.    // Constructors / destructors
  418.    //---------------------------------------------------------------------------
  419.    APageHandler();
  420.  
  421.    virtual  ~APageHandler();
  422.  
  423.    //---------------------------------------------------------------------------
  424.    // public member functions
  425.    //---------------------------------------------------------------------------
  426.    virtual APageHandler & initializePart();
  427.  
  428.    //---------------------------------------------------------------------------
  429.    // public member data
  430.    //---------------------------------------------------------------------------
  431.    static const INotificationId readyId;
  432.  
  433. protected:
  434.    //---------------------------------------------------------------------------
  435.    // protected member functions
  436.    //---------------------------------------------------------------------------
  437.    Boolean makeConnections();
  438.  
  439. private:
  440.  
  441. #include "PgHndler.hpv"
  442. };   //APageHandler
  443.  
  444.  
  445. /*----------------------------------------------------------------------------*/
  446. /* Resume compiler default packing.                                           */
  447. /*----------------------------------------------------------------------------*/
  448. #pragma pack()
  449.  
  450. #endif
  451.  
  452. // Feature source code generation begins here...
  453. public:
  454.   virtual int previousPageNumber() const;
  455.   virtual APageHandler& setPreviousPageNumber(int aPreviousPageNumber);
  456.   virtual int currentPageNumber() const;
  457.   virtual APageHandler& setCurrentPageNumber(int aCurrentPageNumber);
  458.   APageHandler& handleFor(INotebook* notebk);
  459.   APageHandler& stopHandleFor(INotebook* notebk);
  460.  
  461.   static INotificationId previousPageNumberId;
  462.   static INotificationId currentPageNumberId;
  463.   static INotificationId page1SelectedEventId;
  464.   static INotificationId page2SelectedEventId;
  465.   static INotificationId page3SelectedEventId;
  466.   static INotificationId anyPageSelectedEventId;
  467.  
  468. private:
  469.   int iPreviousPageNumber;
  470.   int iCurrentPageNumber;
  471. // Feature source code generation ends here.
  472.  
  473. //*** added code starts here ******
  474.  
  475. public:
  476.   static INotificationId selectedPageTempId;
  477.  
  478. protected:
  479.  
  480.   // **** PageHandler nested class *****
  481.    class MyPageHandler : public IPageHandler  {
  482.      public:
  483.        void setOuterPgHandlerNv(APageHandler * nvPageHdler) {
  484.         outerPgHandlerNv = nvPageHdler;
  485.         }
  486.      protected:
  487.        virtual Boolean select( IPageSelectEvent & event);
  488.      private:
  489.        APageHandler* outerPgHandlerNv;
  490.    };
  491.  
  492. private:
  493.  
  494.   MyPageHandler nbPageHandler;
  495.   void initialize() { nbPageHandler.setOuterPgHandlerNv(this); }
  496.  
  497. // ** added code stops here **
  498.  
  499. Ç.\PgHndler.cppê¼TISêǃCPPOM30I.LIBêǃOS2386.LIBê »DEMANGLêǃCPPOOC3I.LIBêÇáreadyId__12APageHandlerê!Çá/*******************************************************************************
  500. * FILE NAME: PgHndler.rci                                                      *
  501. *                                                                              *
  502. * DESCRIPTION:                                                                 *
  503. *   Resource include file for class:                                           *
  504. *     APageHandler- Notebook page handler                                      *
  505. * ---------------------------------------------------------------------------- *
  506. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  507. * Modifications to this source file will be lost when the part is regenerated. *
  508. *******************************************************************************/
  509. #ifndef vbinclude
  510. #define vbinclude  #include
  511. #endif
  512.  
  513. #include "PgHndler.h"
  514.  
  515. vbinclude <os2.h>
  516.  
  517. #ifndef MAIN_RESOURCES_INCLUDED
  518. #define MAIN_RESOURCES_INCLUDED  
  519.  
  520. HELPTABLE WND_APageHandler
  521.    BEGIN
  522.    END
  523.  
  524. #define APageHandler_WINDOWRESOURCES  
  525. #define APageHandler_NONWINDOWRESOURCES  
  526. STRINGTABLE
  527.    BEGIN
  528.       1,  "Visual Builder 3.0"
  529.    END
  530.  
  531. #endif
  532.  
  533. #ifdef APageHandler_NONWINDOWRESOURCES
  534. #ifndef APageHandler_NONWINDOWRESOURCES_INCLUDED
  535. #define APageHandler_NONWINDOWRESOURCES_INCLUDED  
  536. #endif
  537. #endif
  538.  
  539. #ifdef APageHandler_WINDOWRESOURCES
  540. #define APageHandler_WINDOWRESOURCES_INCLUDING  
  541.  
  542. #undef APageHandler_WINDOWRESOURCES_INCLUDING
  543. #endif
  544.  
  545. #ifdef APageHandler_HELPITEMRESOURCES
  546. #endif
  547.  
  548. #ifdef APageHandler_HELPSUBITEMRESOURCES
  549. #endif
  550.  
  551. MZ      @Ç║┤    ═!╕L═!This program cannot be run in a DOS session.
  552. $LX xT`·    Φ ──l╠÷¼ (\t¥╨ÆVf·ΣX ┤! Ç     ╕      `· 
  553. 49  )   $,4
  554. 9
  555.  =>4ÿ:
  556. ÿ: TARGET!makeConnections__12APageHandlerFv initializePart__12APageHandlerFvreadyId__12APageHandler__dt__4testFvC__ct__4testFUlP7IWindowT2RC10IRectangleRCQ2_12IFrameWindow5StylePCcreadyId__4test/*******************************************************************************
  557. * FILE NAME: test.cpp                                                          *
  558. *                                                                              *
  559. * DESCRIPTION:                                                                 *
  560. *   Class implementation of the class:                                         *
  561. *     test                                                                     *
  562. * ---------------------------------------------------------------------------- *
  563. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  564. * Modifications to this source file will be lost when the part is regenerated. *
  565. *******************************************************************************/
  566. #ifndef _IFRAME_
  567. #include <iframe.hpp>
  568. #endif
  569.  
  570. #ifndef _ICANVAS_
  571. #include <icanvas.hpp>
  572. #endif
  573.  
  574. #ifndef _INOTEBK_
  575. #include <inotebk.hpp>
  576. #endif
  577.  
  578. #ifndef _IPOINT_
  579. #include <ipoint.hpp>
  580. #endif
  581.  
  582. #ifndef _IRECT_
  583. #include <irect.hpp>
  584. #endif
  585.  
  586. #ifndef _IVBNBKPG_
  587. #include <ivbnbkpg.hpp>
  588. #endif
  589.  
  590. #ifndef _IENTRYFD_
  591. #include <ientryfd.hpp>
  592. #endif
  593.  
  594. #ifndef _IPUSHBUT_
  595. #include <ipushbut.hpp>
  596. #endif
  597.  
  598. #ifndef _ISTATTXT_
  599. #include <istattxt.hpp>
  600. #endif
  601.  
  602. #ifndef _APAGEHANDLER_
  603. #include "PgHndler.hpp"
  604. #endif
  605.  
  606. #ifndef _INOTIFEV_
  607. #include <inotifev.hpp>
  608. #endif
  609.  
  610. #ifndef _IOBSERVR_
  611. #include <iobservr.hpp>
  612. #endif
  613.  
  614. #ifndef _ISTDNTFY_
  615. #include <istdntfy.hpp>
  616. #endif
  617.  
  618. #ifndef _TEST_
  619. #include "test.hpp"
  620. #endif
  621.  
  622. #ifndef _IVBDEFS_
  623. #include <ivbdefs.h>
  624. #endif
  625.  
  626. #ifndef _ITRACE_
  627. #include <itrace.hpp>
  628. #endif
  629.  
  630.  
  631. //*****************************************************************************
  632. // Class definition for testConn0
  633. //*****************************************************************************
  634. class testConn0 : public IObserver, public IStandardNotifier {
  635. public:
  636.    virtual  ~testConn0(){};
  637.  
  638.    //---------------------------------------------------------------------------
  639.    // public member functions
  640.    //---------------------------------------------------------------------------
  641.    void initialize(IPushButton * aSource, APageHandler * aTarget)
  642.       {source = aSource; target = aTarget; enableNotification(); };
  643.    testConn0 & setNotebk(INotebook * aSelf) {iNotebk = aSelf; return *this;};
  644.  
  645. protected:
  646.    //---------------------------------------------------------------------------
  647.    // protected member functions
  648.    //---------------------------------------------------------------------------
  649.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  650.       {
  651.       if (anEvent.notificationId() == IPushButton::buttonClickId)
  652.          {
  653.          IFUNCTRACE_DEVELOP();
  654.          ITRACE_DEVELOP(" firing connection : PushButton1(buttonClickEvent) to APageHandler1(startHandleFor))");
  655.          try {target->handleFor(iNotebk);}
  656.          catch (IException& exc) {};
  657.          }
  658.       return(*this);
  659.       };
  660.  
  661. private:
  662.    //---------------------------------------------------------------------------
  663.    // private member data
  664.    //---------------------------------------------------------------------------
  665.    IPushButton * source;
  666.    APageHandler * target;
  667.    INotebook * iNotebk;
  668.  
  669.  
  670. };   //testConn0
  671.  
  672.  
  673. //*****************************************************************************
  674. // Class definition for testConn2
  675. //*****************************************************************************
  676. class testConn2 : public IObserver, public IStandardNotifier {
  677. public:
  678.    virtual  ~testConn2(){};
  679.  
  680.    //---------------------------------------------------------------------------
  681.    // public member functions
  682.    //---------------------------------------------------------------------------
  683.    void initialize(IPushButton * aSource, APageHandler * aTarget)
  684.       {source = aSource; target = aTarget; enableNotification(); };
  685.    testConn2 & setNotebk(INotebook * aSelf) {iNotebk = aSelf; return *this;};
  686.  
  687. protected:
  688.    //---------------------------------------------------------------------------
  689.    // protected member functions
  690.    //---------------------------------------------------------------------------
  691.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  692.       {
  693.       if (anEvent.notificationId() == IPushButton::buttonClickId)
  694.          {
  695.          IFUNCTRACE_DEVELOP();
  696.          ITRACE_DEVELOP(" firing connection : PushButton2(buttonClickEvent) to APageHandler1(stopHandleFor))");
  697.          try {target->stopHandleFor(iNotebk);}
  698.          catch (IException& exc) {};
  699.          }
  700.       return(*this);
  701.       };
  702.  
  703. private:
  704.    //---------------------------------------------------------------------------
  705.    // private member data
  706.    //---------------------------------------------------------------------------
  707.    IPushButton * source;
  708.    APageHandler * target;
  709.    INotebook * iNotebk;
  710.  
  711.  
  712. };   //testConn2
  713.  
  714.  
  715. //*****************************************************************************
  716. // Class definition for testConn4
  717. //*****************************************************************************
  718. class testConn4 : public IObserver, public IStandardNotifier {
  719. public:
  720.    virtual  ~testConn4(){};
  721.  
  722.    //---------------------------------------------------------------------------
  723.    // public member functions
  724.    //---------------------------------------------------------------------------
  725.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  726.       {source = aSource; target = aTarget; enableNotification(); };
  727.    testConn4 & setNewValue(APageHandler * aSelf) {iNewValue = aSelf; return *this;};
  728.  
  729. protected:
  730.    //---------------------------------------------------------------------------
  731.    // protected member functions
  732.    //---------------------------------------------------------------------------
  733.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  734.       {
  735.       if (anEvent.notificationId() == APageHandler::page3SelectedEventId)
  736.          {
  737.          IFUNCTRACE_DEVELOP();
  738.          ITRACE_DEVELOP(" firing connection : APageHandler1(page3SelectedEvent) to EntryField3(valueAsInt))");
  739.          try {target->VBSETTEXTFROMVALUE(iNewValue->currentPageNumber());}
  740.          catch (IException& exc) {};
  741.          }
  742.       return(*this);
  743.       };
  744.  
  745. private:
  746.    //---------------------------------------------------------------------------
  747.    // private member data
  748.    //---------------------------------------------------------------------------
  749.    APageHandler * source;
  750.    IEntryField * target;
  751.    APageHandler * iNewValue;
  752.  
  753.  
  754. };   //testConn4
  755.  
  756.  
  757. //*****************************************************************************
  758. // Class definition for testConn6
  759. //*****************************************************************************
  760. class testConn6 : public IObserver, public IStandardNotifier {
  761. public:
  762.    virtual  ~testConn6(){};
  763.  
  764.    //---------------------------------------------------------------------------
  765.    // public member functions
  766.    //---------------------------------------------------------------------------
  767.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  768.       {source = aSource; target = aTarget; enableNotification(); };
  769.    testConn6 & setNewValue(APageHandler * aSelf) {iNewValue = aSelf; return *this;};
  770.  
  771. protected:
  772.    //---------------------------------------------------------------------------
  773.    // protected member functions
  774.    //---------------------------------------------------------------------------
  775.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  776.       {
  777.       if (anEvent.notificationId() == APageHandler::page1SelectedEventId)
  778.          {
  779.          IFUNCTRACE_DEVELOP();
  780.          ITRACE_DEVELOP(" firing connection : APageHandler1(page1SelectedEvent) to EntryField4(valueAsInt))");
  781.          try {target->VBSETTEXTFROMVALUE(iNewValue->currentPageNumber());}
  782.          catch (IException& exc) {};
  783.          }
  784.       return(*this);
  785.       };
  786.  
  787. private:
  788.    //---------------------------------------------------------------------------
  789.    // private member data
  790.    //---------------------------------------------------------------------------
  791.    APageHandler * source;
  792.    IEntryField * target;
  793.    APageHandler * iNewValue;
  794.  
  795.  
  796. };   //testConn6
  797.  
  798.  
  799. //*****************************************************************************
  800. // Class definition for testConn8
  801. //*****************************************************************************
  802. class testConn8 : public IObserver, public IStandardNotifier {
  803. public:
  804.    virtual  ~testConn8(){};
  805.  
  806.    //---------------------------------------------------------------------------
  807.    // public member functions
  808.    //---------------------------------------------------------------------------
  809.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  810.       {source = aSource; target = aTarget; enableNotification(); };
  811.    testConn8 & setNewValue(APageHandler * aSelf) {iNewValue = aSelf; return *this;};
  812.  
  813. protected:
  814.    //---------------------------------------------------------------------------
  815.    // protected member functions
  816.    //---------------------------------------------------------------------------
  817.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  818.       {
  819.       if (anEvent.notificationId() == APageHandler::page2SelectedEventId)
  820.          {
  821.          IFUNCTRACE_DEVELOP();
  822.          ITRACE_DEVELOP(" firing connection : APageHandler1(page2SelectedEvent) to EntryField5(valueAsInt))");
  823.          try {target->VBSETTEXTFROMVALUE(iNewValue->currentPageNumber());}
  824.          catch (IException& exc) {};
  825.          }
  826.       return(*this);
  827.       };
  828.  
  829. private:
  830.    //---------------------------------------------------------------------------
  831.    // private member data
  832.    //---------------------------------------------------------------------------
  833.    APageHandler * source;
  834.    IEntryField * target;
  835.    APageHandler * iNewValue;
  836.  
  837.  
  838. };   //testConn8
  839.  
  840.  
  841. //*****************************************************************************
  842. // Class definition for testConn10
  843. //*****************************************************************************
  844. class testConn10 : public IObserver {
  845. public:
  846.    virtual  ~testConn10(){};
  847.  
  848.    //---------------------------------------------------------------------------
  849.    // public member functions
  850.    //---------------------------------------------------------------------------
  851.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  852.       {source = aSource; target = aTarget; aligning = false; };
  853.    void setSource()
  854.       {
  855.       if (aligning==false) {
  856.          IFUNCTRACE_DEVELOP();
  857.          ITRACE_DEVELOP(" firing connection : APageHandler1(currentPageNumber) to EntryField1(valueAsInt))");
  858.          ITRACE_DEVELOP(" setting source from target ");
  859.          aligning = true;
  860.          try {source->setCurrentPageNumber(target->VBINTVALUEFROMTEXT());}
  861.          catch (IException& exc) {};
  862.          aligning = false;
  863.          }
  864.       };
  865.    void setTarget()
  866.       {
  867.       if (aligning==false) {
  868.          IFUNCTRACE_DEVELOP();
  869.          ITRACE_DEVELOP(" firing connection : APageHandler1(currentPageNumber) to EntryField1(valueAsInt))");
  870.          ITRACE_DEVELOP(" setting target from source ");
  871.          aligning = true;
  872.          try {target->VBSETTEXTFROMVALUE(source->currentPageNumber());}
  873.          catch (IException& exc) {};
  874.          aligning = false;
  875.          }
  876.       };
  877.  
  878. protected:
  879.    //---------------------------------------------------------------------------
  880.    // protected member functions
  881.    //---------------------------------------------------------------------------
  882.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  883.       {
  884.       if (anEvent.notificationId() == VBINITIALIZEID) setTarget();
  885.       if ((anEvent.notificationId() == APageHandler::currentPageNumberId) && (source == &anEvent.notifier()))
  886.          setTarget();  /* set target to source value */
  887.       else
  888.       if ((anEvent.notificationId() == IEntryField::textId) && (target == &anEvent.notifier()))
  889.          setSource();  /* set source to target value */
  890.       return(*this);
  891.       };
  892.  
  893. private:
  894.    //---------------------------------------------------------------------------
  895.    // private member data
  896.    //---------------------------------------------------------------------------
  897.    APageHandler * source;
  898.    IEntryField * target;
  899.    Boolean aligning;
  900.  
  901.  
  902. };   //testConn10
  903.  
  904.  
  905. //*****************************************************************************
  906. // Class definition for testConn11
  907. //*****************************************************************************
  908. class testConn11 : public IObserver {
  909. public:
  910.    virtual  ~testConn11(){};
  911.  
  912.    //---------------------------------------------------------------------------
  913.    // public member functions
  914.    //---------------------------------------------------------------------------
  915.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  916.       {source = aSource; target = aTarget; aligning = false; };
  917.    void setSource()
  918.       {
  919.       if (aligning==false) {
  920.          IFUNCTRACE_DEVELOP();
  921.          ITRACE_DEVELOP(" firing connection : APageHandler1(previousPageNumber) to EntryField2(valueAsInt))");
  922.          ITRACE_DEVELOP(" setting source from target ");
  923.          aligning = true;
  924.          try {source->setPreviousPageNumber(target->VBINTVALUEFROMTEXT());}
  925.          catch (IException& exc) {};
  926.          aligning = false;
  927.          }
  928.       };
  929.    void setTarget()
  930.       {
  931.       if (aligning==false) {
  932.          IFUNCTRACE_DEVELOP();
  933.          ITRACE_DEVELOP(" firing connection : APageHandler1(previousPageNumber) to EntryField2(valueAsInt))");
  934.          ITRACE_DEVELOP(" setting target from source ");
  935.          aligning = true;
  936.          try {target->VBSETTEXTFROMVALUE(source->previousPageNumber());}
  937.          catch (IException& exc) {};
  938.          aligning = false;
  939.          }
  940.       };
  941.  
  942. protected:
  943.    //---------------------------------------------------------------------------
  944.    // protected member functions
  945.    //---------------------------------------------------------------------------
  946.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  947.       {
  948.       if (anEvent.notificationId() == VBINITIALIZEID) setTarget();
  949.       if ((anEvent.notificationId() == APageHandler::previousPageNumberId) && (source == &anEvent.notifier()))
  950.          setTarget();  /* set target to source value */
  951.       else
  952.       if ((anEvent.notificationId() == IEntryField::textId) && (target == &anEvent.notifier()))
  953.          setSource();  /* set source to target value */
  954.       return(*this);
  955.       };
  956.  
  957. private:
  958.    //---------------------------------------------------------------------------
  959.    // private member data
  960.    //---------------------------------------------------------------------------
  961.    APageHandler * source;
  962.    IEntryField * target;
  963.    Boolean aligning;
  964.  
  965.  
  966. };   //testConn11
  967.  
  968.  
  969. //*****************************************************************************
  970. // Class definition for testConn12
  971. //*****************************************************************************
  972. class testConn12 : public IObserver, public IStandardNotifier {
  973. public:
  974.    virtual  ~testConn12(){};
  975.  
  976.    //---------------------------------------------------------------------------
  977.    // public member functions
  978.    //---------------------------------------------------------------------------
  979.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  980.       {source = aSource; target = aTarget; enableNotification(); };
  981.  
  982. protected:
  983.    //---------------------------------------------------------------------------
  984.    // protected member functions
  985.    //---------------------------------------------------------------------------
  986.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  987.       {
  988.       if (anEvent.notificationId() == APageHandler::anyPageSelectedEventId)
  989.          {
  990.          IFUNCTRACE_DEVELOP();
  991.          ITRACE_DEVELOP(" firing connection : APageHandler1(anyPageSelectedEvent) to EntryField6(customLogic, \"set ef to the selected page number\"))");
  992.          try {codeSnippet(&anEvent);}
  993.          catch (IException& exc) {};
  994.          }
  995.       return(*this);
  996.       };
  997.  
  998. private:
  999.    //---------------------------------------------------------------------------
  1000.    // private member functions
  1001.    //---------------------------------------------------------------------------
  1002.    void codeSnippet(const INotificationEvent* event)
  1003.       {
  1004.       // get page number from IEventData object.
  1005.       // event->eventData returns en IEventData object.
  1006.  
  1007.       target->VBSETTEXTFROMVALUE(event->eventData().asLong());
  1008.       };
  1009.  
  1010.    //---------------------------------------------------------------------------
  1011.    // private member data
  1012.    //---------------------------------------------------------------------------
  1013.    APageHandler * source;
  1014.    IEntryField * target;
  1015.  
  1016.  
  1017. };   //testConn12
  1018.  
  1019.  
  1020. #pragma export (test::readyId)
  1021. const INotificationId test::readyId = "test::readyId";
  1022.  
  1023. #pragma export (test::partWindowId)
  1024. unsigned long test::partWindowId = 0;
  1025.  
  1026. //------------------------------------------------------------------------------
  1027. // test :: defaultFramingSpec
  1028. //------------------------------------------------------------------------------
  1029. #pragma export (test::defaultFramingSpec())
  1030. const IRectangle test::defaultFramingSpec()
  1031. {
  1032.    return(IRectangle(IPoint(30, IWindow::desktopWindow()->size().height() - -2 - 416),ISize(545, 416)));
  1033. }
  1034.  
  1035.  
  1036. //------------------------------------------------------------------------------
  1037. // test :: defaultTitle
  1038. //------------------------------------------------------------------------------
  1039. #pragma export (test::defaultTitle())
  1040. IString test::defaultTitle()
  1041. {
  1042.    return("IPageHandler example");
  1043. }
  1044.  
  1045.  
  1046. //------------------------------------------------------------------------------
  1047. // test :: test
  1048. //------------------------------------------------------------------------------
  1049. #pragma export (test::test(unsigned long, IWindow*, IWindow*, const IRectangle&, const IFrameWindow::Style&, const char*))
  1050. test::test(
  1051.       unsigned long id, 
  1052.       IWindow* parent, 
  1053.       IWindow* owner, 
  1054.       const IRectangle& rect, 
  1055.       const IFrameWindow::Style& style, 
  1056.       const char* title)
  1057.    : IFrameWindow((partWindowId) ? partWindowId : id, parent, owner, rect, style, title)
  1058. {
  1059.    partWindowId = (partWindowId) ? partWindowId : id;
  1060.    iCanvas = new ICanvas(
  1061.       IC_FRAME_CLIENT_ID, 
  1062.       this, 
  1063.       this, 
  1064.       IRectangle());
  1065.    iNotebook1 = new INotebook(
  1066.       partWindowId+WNDOFFSET_test_Notebook1, 
  1067.       iCanvas, 
  1068.       iCanvas, 
  1069.       IRectangle(IPoint(18,136),ISize(438, 220)));
  1070.    iCanvas2 = new ICanvas(
  1071.       partWindowId+WNDOFFSET_test_Canvas2, 
  1072.       iNotebook1, 
  1073.       iNotebook1, 
  1074.       IRectangle());
  1075.    iEntryField4 = new IEntryField(
  1076.       partWindowId+WNDOFFSET_test_EntryField4, 
  1077.       iCanvas2, 
  1078.       iCanvas2, 
  1079.       IRectangle(IPoint(54,93),ISize(200, 25)));
  1080.    iVBNotebookPage = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas2);
  1081.    iCanvas1 = new ICanvas(
  1082.       partWindowId+WNDOFFSET_test_Canvas1, 
  1083.       iNotebook1, 
  1084.       iNotebook1, 
  1085.       IRectangle());
  1086.    iEntryField5 = new IEntryField(
  1087.       partWindowId+WNDOFFSET_test_EntryField5, 
  1088.       iCanvas1, 
  1089.       iCanvas1, 
  1090.       IRectangle(IPoint(54,97),ISize(237, 26)));
  1091.    iVBNotebookPage1 = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas1);
  1092.    iCanvas3 = new ICanvas(
  1093.       partWindowId+WNDOFFSET_test_Canvas3, 
  1094.       iNotebook1, 
  1095.       iNotebook1, 
  1096.       IRectangle());
  1097.    iEntryField3 = new IEntryField(
  1098.       partWindowId+WNDOFFSET_test_EntryField3, 
  1099.       iCanvas3, 
  1100.       iCanvas3, 
  1101.       IRectangle(IPoint(65,111),ISize(235, 25)));
  1102.    iVBNotebookPage2 = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas3);
  1103.    iEntryField1 = new IEntryField(
  1104.       partWindowId+WNDOFFSET_test_EntryField1, 
  1105.       iCanvas, 
  1106.       iCanvas, 
  1107.       IRectangle(IPoint(19,74),ISize(161, 26)));
  1108.    iPushButton1 = new IPushButton(
  1109.       partWindowId+WNDOFFSET_test_PushButton1, 
  1110.       iCanvas, 
  1111.       iCanvas, 
  1112.       IRectangle(IPoint(85,25),ISize(124, 34)));
  1113.    iPushButton2 = new IPushButton(
  1114.       partWindowId+WNDOFFSET_test_PushButton2, 
  1115.       iCanvas, 
  1116.       iCanvas, 
  1117.       IRectangle(IPoint(268,24),ISize(121, 34)));
  1118.    iEntryField2 = new IEntryField(
  1119.       partWindowId+WNDOFFSET_test_EntryField2, 
  1120.       iCanvas, 
  1121.       iCanvas, 
  1122.       IRectangle(IPoint(205,71),ISize(148, 27)));
  1123.    iStaticText1 = new IStaticText(
  1124.       partWindowId+WNDOFFSET_test_StaticText1, 
  1125.       iCanvas, 
  1126.       iCanvas, 
  1127.       IRectangle(IPoint(19,102),ISize(158, 25)));
  1128.    iStaticText2 = new IStaticText(
  1129.       partWindowId+WNDOFFSET_test_StaticText2, 
  1130.       iCanvas, 
  1131.       iCanvas, 
  1132.       IRectangle(IPoint(205,102),ISize(138, 25)));
  1133.    iEntryField6 = new IEntryField(
  1134.       partWindowId+WNDOFFSET_test_EntryField6, 
  1135.       iCanvas, 
  1136.       iCanvas, 
  1137.       IRectangle(IPoint(392,72),ISize(129, 24)));
  1138.    iAPageHandler1 = new APageHandler();
  1139.  
  1140.    conn0 = new testConn0();
  1141.    conn2 = new testConn2();
  1142.    conn4 = new testConn4();
  1143.    conn6 = new testConn6();
  1144.    conn8 = new testConn8();
  1145.    conn10 = new testConn10();
  1146.    conn11 = new testConn11();
  1147.    conn12 = new testConn12();
  1148.  
  1149.    this->setFocus();
  1150.    this->setClient(iCanvas);
  1151.    iNotebook1->setMinorTabSize(ISize(0, 0));
  1152.    iVBNotebookPage->setTabText("Tab1");
  1153.    iCanvas2->setMinimumSize(ISize(100, 100));
  1154.    iVBNotebookPage1->setTabText("Tab2");
  1155.    iCanvas1->setMinimumSize(ISize(100, 100));
  1156.    iVBNotebookPage2->setTabText("Tab3");
  1157.    iCanvas3->setMinimumSize(ISize(100, 100));
  1158.    iPushButton1->setText("start handle");
  1159.    iPushButton2->setText("stop handle");
  1160.    iStaticText1->setText("current pg number");
  1161.    iStaticText2->setText("previous page #");
  1162. }     //end constructor
  1163.  
  1164.  
  1165. //------------------------------------------------------------------------------
  1166. // test :: ~test
  1167. //------------------------------------------------------------------------------
  1168. #pragma export (test::~test())
  1169. test::~test()
  1170. {
  1171.    conn0->stopHandlingNotificationsFor(*iPushButton1);
  1172.    conn2->stopHandlingNotificationsFor(*iPushButton2);
  1173.    conn4->stopHandlingNotificationsFor(*iAPageHandler1);
  1174.    conn6->stopHandlingNotificationsFor(*iAPageHandler1);
  1175.    conn8->stopHandlingNotificationsFor(*iAPageHandler1);
  1176.    conn10->stopHandlingNotificationsFor(*iAPageHandler1);
  1177.    conn10->stopHandlingNotificationsFor(*iEntryField1);
  1178.    conn11->stopHandlingNotificationsFor(*iAPageHandler1);
  1179.    conn11->stopHandlingNotificationsFor(*iEntryField2);
  1180.    conn12->stopHandlingNotificationsFor(*iAPageHandler1);
  1181.  
  1182.    delete conn0;
  1183.    delete conn2;
  1184.    delete conn4;
  1185.    delete conn6;
  1186.    delete conn8;
  1187.    delete conn10;
  1188.    delete conn11;
  1189.    delete conn12;
  1190.  
  1191.  
  1192.    delete iCanvas;
  1193.    delete iNotebook1;
  1194.    delete iVBNotebookPage;
  1195.    delete iCanvas2;
  1196.    delete iEntryField4;
  1197.    delete iVBNotebookPage1;
  1198.    delete iCanvas1;
  1199.    delete iEntryField5;
  1200.    delete iVBNotebookPage2;
  1201.    delete iCanvas3;
  1202.    delete iEntryField3;
  1203.    delete iEntryField1;
  1204.    delete iPushButton1;
  1205.    delete iPushButton2;
  1206.    delete iEntryField2;
  1207.    delete iStaticText1;
  1208.    delete iStaticText2;
  1209.    delete iEntryField6;
  1210.    delete iAPageHandler1;
  1211. }
  1212.  
  1213. //------------------------------------------------------------------------------
  1214. // test :: initializePart
  1215. //------------------------------------------------------------------------------
  1216. #pragma export (test::initializePart())
  1217. test & test::initializePart()
  1218. {
  1219.    makeConnections();
  1220.    notifyObservers(INotificationEvent(readyId, *this));
  1221.    return *this;
  1222. }
  1223.  
  1224.  
  1225. //------------------------------------------------------------------------------
  1226. // test :: makeConnections
  1227. //------------------------------------------------------------------------------
  1228. #pragma export (test::makeConnections())
  1229. Boolean test::makeConnections()
  1230. {
  1231.    this->enableNotification();
  1232.    iCanvas->enableNotification();
  1233.    iNotebook1->enableNotification();
  1234.    iVBNotebookPage->enableNotification();
  1235.    iCanvas2->enableNotification();
  1236.    iEntryField4->enableNotification();
  1237.    iVBNotebookPage1->enableNotification();
  1238.    iCanvas1->enableNotification();
  1239.    iEntryField5->enableNotification();
  1240.    iVBNotebookPage2->enableNotification();
  1241.    iCanvas3->enableNotification();
  1242.    iEntryField3->enableNotification();
  1243.    iEntryField1->enableNotification();
  1244.    iPushButton1->enableNotification();
  1245.    iPushButton2->enableNotification();
  1246.    iEntryField2->enableNotification();
  1247.    iStaticText1->enableNotification();
  1248.    iStaticText2->enableNotification();
  1249.    iEntryField6->enableNotification();
  1250.    iAPageHandler1->enableNotification();
  1251.  
  1252.    conn0->initialize(iPushButton1, iAPageHandler1);
  1253.    conn0->handleNotificationsFor(*iPushButton1);
  1254.    conn0->setNotebk(iNotebook1);
  1255.    conn2->initialize(iPushButton2, iAPageHandler1);
  1256.    conn2->handleNotificationsFor(*iPushButton2);
  1257.    conn2->setNotebk(iNotebook1);
  1258.    conn4->initialize(iAPageHandler1, iEntryField3);
  1259.    conn4->handleNotificationsFor(*iAPageHandler1);
  1260.    conn4->setNewValue(iAPageHandler1);
  1261.    conn6->initialize(iAPageHandler1, iEntryField4);
  1262.    conn6->handleNotificationsFor(*iAPageHandler1);
  1263.    conn6->setNewValue(iAPageHandler1);
  1264.    conn8->initialize(iAPageHandler1, iEntryField5);
  1265.    conn8->handleNotificationsFor(*iAPageHandler1);
  1266.    conn8->setNewValue(iAPageHandler1);
  1267.    conn10->initialize(iAPageHandler1, iEntryField1);
  1268.    conn10->handleNotificationsFor(*iAPageHandler1);
  1269.    conn10->handleNotificationsFor(*iEntryField1);
  1270.    conn11->initialize(iAPageHandler1, iEntryField2);
  1271.    conn11->handleNotificationsFor(*iAPageHandler1);
  1272.    conn11->handleNotificationsFor(*iEntryField2);
  1273.    conn12->initialize(iAPageHandler1, iEntryField6);
  1274.    conn12->handleNotificationsFor(*iAPageHandler1);
  1275.  
  1276.    conn10->setTarget();
  1277.    conn11->setTarget();
  1278.    return true;
  1279. }
  1280.  
  1281.  
  1282.  
  1283. /*******************************************************************************
  1284. * FILE NAME: test.h                                                            *
  1285. *                                                                              *
  1286. * DESCRIPTION:                                                                 *
  1287. *   Constant declarations for class:                                           *
  1288. *     test                                                                     *
  1289. * ---------------------------------------------------------------------------- *
  1290. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  1291. * Modifications to this source file will be lost when the part is regenerated. *
  1292. *******************************************************************************/
  1293. #ifndef _ICCONST_
  1294. #include <icconst.h>
  1295. #endif
  1296.  
  1297. #ifndef _IVBDEFS_
  1298. #include <ivbdefs.h>
  1299. #endif
  1300.  
  1301. #ifndef WND_test
  1302. #define WND_test  VBBASEWINDOWID
  1303. #endif
  1304.  
  1305. #define WNDOFFSET_test_FrameWindow  0
  1306. #define WND_test_FrameWindow  WND_test
  1307.  
  1308. #define WND_test_Canvas  IC_FRAME_CLIENT_ID
  1309.  
  1310. #define WNDOFFSET_test_Notebook1  1
  1311. #define WND_test_Notebook1  WND_test + WNDOFFSET_test_Notebook1
  1312.  
  1313.  
  1314. #define WNDOFFSET_test_Canvas2  2
  1315. #define WND_test_Canvas2  WND_test + WNDOFFSET_test_Canvas2
  1316.  
  1317. #define WNDOFFSET_test_EntryField4  3
  1318. #define WND_test_EntryField4  WND_test + WNDOFFSET_test_EntryField4
  1319.  
  1320.  
  1321. #define WNDOFFSET_test_Canvas1  4
  1322. #define WND_test_Canvas1  WND_test + WNDOFFSET_test_Canvas1
  1323.  
  1324. #define WNDOFFSET_test_EntryField5  5
  1325. #define WND_test_EntryField5  WND_test + WNDOFFSET_test_EntryField5
  1326.  
  1327.  
  1328. #define WNDOFFSET_test_Canvas3  6
  1329. #define WND_test_Canvas3  WND_test + WNDOFFSET_test_Canvas3
  1330.  
  1331. #define WNDOFFSET_test_EntryField3  7
  1332. #define WND_test_EntryField3  WND_test + WNDOFFSET_test_EntryField3
  1333.  
  1334. #define WNDOFFSET_test_EntryField1  8
  1335. #define WND_test_EntryField1  WND_test + WNDOFFSET_test_EntryField1
  1336.  
  1337. #define WNDOFFSET_test_PushButton1  9
  1338. #define WND_test_PushButton1  WND_test + WNDOFFSET_test_PushButton1
  1339.  
  1340. #define WNDOFFSET_test_PushButton2  10
  1341. #define WND_test_PushButton2  WND_test + WNDOFFSET_test_PushButton2
  1342.  
  1343. #define WNDOFFSET_test_EntryField2  11
  1344. #define WND_test_EntryField2  WND_test + WNDOFFSET_test_EntryField2
  1345.  
  1346. #define WNDOFFSET_test_StaticText1  12
  1347. #define WND_test_StaticText1  WND_test + WNDOFFSET_test_StaticText1
  1348.  
  1349. #define WNDOFFSET_test_StaticText2  13
  1350. #define WND_test_StaticText2  WND_test + WNDOFFSET_test_StaticText2
  1351.  
  1352. #define WNDOFFSET_test_EntryField6  14
  1353. #define WND_test_EntryField6  WND_test + WNDOFFSET_test_EntryField6
  1354.  
  1355.  
  1356.  
  1357. /*******************************************************************************
  1358. * FILE NAME: test.hpp                                                          *
  1359. *                                                                              *
  1360. * DESCRIPTION:                                                                 *
  1361. *   Declaration of the class:                                                  *
  1362. *     test                                                                     *
  1363. * ---------------------------------------------------------------------------- *
  1364. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  1365. * Modifications to this source file will be lost when the part is regenerated. *
  1366. *******************************************************************************/
  1367. #ifndef _TEST_
  1368. #define _TEST_  
  1369.  
  1370. class test;
  1371.  
  1372. #ifndef _IFRAME_
  1373. #include <iframe.hpp>
  1374. #endif
  1375.  
  1376. class ICanvas;
  1377. class INotebook;
  1378. class IVBNotebookPage;
  1379. class IEntryField;
  1380. class IPushButton;
  1381. class IStaticText;
  1382. class APageHandler;
  1383. #ifndef _IRECT_
  1384. #include <irect.hpp>
  1385. #endif
  1386.  
  1387. #ifndef _ISTRING_
  1388. #include <istring.hpp>
  1389. #endif
  1390.  
  1391. #ifndef _IEVTDATA_
  1392. #include <ievtdata.hpp>
  1393. #endif
  1394.  
  1395. class testConn0;
  1396. class testConn2;
  1397. class testConn4;
  1398. class testConn6;
  1399. class testConn8;
  1400. class testConn10;
  1401. class testConn11;
  1402. class testConn12;
  1403. #include "test.h"
  1404.  
  1405.  
  1406. /*----------------------------------------------------------------------------*/
  1407. /* Align classes on four byte boundary.                                       */
  1408. /*----------------------------------------------------------------------------*/
  1409. #pragma pack(4)
  1410.  
  1411. //*****************************************************************************
  1412. // Class definition for test
  1413. //*****************************************************************************
  1414. class test : public IFrameWindow {
  1415. public:
  1416.    //---------------------------------------------------------------------------
  1417.    // Constructors / destructors
  1418.    //---------------------------------------------------------------------------
  1419.    test(
  1420.       unsigned long id = WND_test,
  1421.       IWindow* parent = IWindow::desktopWindow(),
  1422.       IWindow* owner = 0,
  1423.       const IRectangle& rect = defaultFramingSpec(),
  1424.       const IFrameWindow::Style& style = IFrameWindow::defaultStyle ( ),
  1425.       const char* title = defaultTitle());
  1426.  
  1427.    virtual  ~test();
  1428.  
  1429.    //---------------------------------------------------------------------------
  1430.    // public member functions
  1431.    //---------------------------------------------------------------------------
  1432.    static const IRectangle defaultFramingSpec();
  1433.    static IString defaultTitle();
  1434.    virtual test & initializePart();
  1435.    test * getFrameWindow() { return this; };
  1436.  
  1437.    //---------------------------------------------------------------------------
  1438.    // public member data
  1439.    //---------------------------------------------------------------------------
  1440.    static const INotificationId readyId;
  1441.  
  1442. protected:
  1443.    //---------------------------------------------------------------------------
  1444.    // protected member functions
  1445.    //---------------------------------------------------------------------------
  1446.    Boolean makeConnections();
  1447.  
  1448. private:
  1449.    //---------------------------------------------------------------------------
  1450.    // private member data
  1451.    //---------------------------------------------------------------------------
  1452.    ICanvas * iCanvas;
  1453.    INotebook * iNotebook1;
  1454.    IVBNotebookPage * iVBNotebookPage;
  1455.    ICanvas * iCanvas2;
  1456.    IEntryField * iEntryField4;
  1457.    IVBNotebookPage * iVBNotebookPage1;
  1458.    ICanvas * iCanvas1;
  1459.    IEntryField * iEntryField5;
  1460.    IVBNotebookPage * iVBNotebookPage2;
  1461.    ICanvas * iCanvas3;
  1462.    IEntryField * iEntryField3;
  1463.    IEntryField * iEntryField1;
  1464.    IPushButton * iPushButton1;
  1465.    IPushButton * iPushButton2;
  1466.    IEntryField * iEntryField2;
  1467.    IStaticText * iStaticText1;
  1468.    IStaticText * iStaticText2;
  1469.    IEntryField * iEntryField6;
  1470.    APageHandler * iAPageHandler1;
  1471.    testConn0 * conn0;
  1472.    testConn2 * conn2;
  1473.    testConn4 * conn4;
  1474.    testConn6 * conn6;
  1475.    testConn8 * conn8;
  1476.    testConn10 * conn10;
  1477.    testConn11 * conn11;
  1478.    testConn12 * conn12;
  1479.    static unsigned long partWindowId;
  1480.  
  1481. friend class testConn12;
  1482.  
  1483. };   //test
  1484.  
  1485.  
  1486. /*----------------------------------------------------------------------------*/
  1487. /* Resume compiler default packing.                                           */
  1488. /*----------------------------------------------------------------------------*/
  1489. #pragma pack()
  1490.  
  1491. #endif
  1492. #line 20 "F:\vacpp\INCLUDE\imsgtext.hpp"
  1493. #pragma info (none)
  1494. #pragma pack (4)
  1495. #line 24
  1496. class IMessageText {
  1497. public:
  1498.  
  1499.   IMessageText  ( unsigned long messageId,
  1500.                   const char*   messageFileName,
  1501.                   const char*   textInsert1 = 0,
  1502.                   const char*   textInsert2 = 0,
  1503.                   const char*   textInsert3 = 0,
  1504.                   const char*   textInsert4 = 0,
  1505.                   const char*   textInsert5 = 0,
  1506.                   const char*   textInsert6 = 0,
  1507.                   const char*   textInsert7 = 0,
  1508.                   const char*   textInsert8 = 0,
  1509.                   const char*   textInsert9 = 0 );
  1510.  
  1511.   IMessageText ( const IMessageText& text );
  1512.  
  1513.   ~IMessageText ( );
  1514. #line 44
  1515.   operator const char*  () const;
  1516.  
  1517. const char*
  1518.   text ( ) const;
  1519.  
  1520. IMessageText
  1521.  &setDefaultText ( const char*         text ),
  1522.  &operator=      ( const IMessageText& text );
  1523.  
  1524. private:
  1525. #line 56
  1526. char
  1527.  *pClText;
  1528. int
  1529.   bClSuccess;
  1530.  
  1531. };  
  1532. #line 64
  1533. #pragma info (restore)
  1534. #pragma pack ()
  1535. #line 35 "F:\vacpp\INCLUDE\iexcbase.hpp"
  1536. class IExcText;
  1537.  
  1538. class IExceptionLocation {
  1539. public:
  1540. #line 41
  1541.   IExceptionLocation ( const char*   fileName = 0,
  1542.                        const char*   functionName = 0,
  1543.                        unsigned long lineNumber = 0 );
  1544. #line 46
  1545. const char
  1546.  *fileName     ( ) const,
  1547.  *functionName ( ) const;
  1548.  
  1549. unsigned long
  1550.   lineNumber ( ) const;
  1551.  
  1552. private:
  1553.  
  1554. const char
  1555.  *pClFile,
  1556.  *pClFunction;
  1557. unsigned long
  1558.   ulClLineNo;
  1559. };  
  1560.  
  1561. class IException {
  1562. public:
  1563.  
  1564. enum Severity { unrecoverable, recoverable };
  1565. #line 68
  1566.   IException ( const char*       errorText,
  1567.                unsigned long     errorId = 0,
  1568.                Severity          severity = IException::unrecoverable );
  1569.   IException ( const IException& exception );
  1570.  
  1571. virtual
  1572.  ~IException ( );
  1573.  
  1574. class TraceFn {
  1575. public:
  1576.  
  1577. virtual void
  1578.   write   ( const char* buffer ),
  1579.   logData ( IException& exception );
  1580.  
  1581. protected:
  1582.  
  1583.   TraceFn ( );
  1584. #line 88
  1585. virtual void
  1586.   exceptionLogged ( );
  1587.  
  1588. };  
  1589. #line 94
  1590. typedef const char* ErrorCodeGroup;
  1591.  
  1592. static ErrorCodeGroup const
  1593.   baseLibrary,
  1594.   CLibrary,
  1595.   operatingSystem,
  1596.   presentationSystem,
  1597.   other;
  1598.  
  1599. IException&
  1600.   setErrorCodeGroup ( ErrorCodeGroup errorGroup );
  1601.  
  1602. ErrorCodeGroup
  1603.   errorCodeGroup ( ) const;
  1604. #line 110
  1605. IException
  1606.  &appendText  ( const char*   errorText ),
  1607.  &setText     ( const char*   errorText );
  1608.  
  1609. const char
  1610.  *text ( unsigned long indexFromTop = 0 ) const;
  1611.  
  1612. unsigned long
  1613.   textCount     ( ) const;
  1614. #line 121
  1615. IException
  1616.  &setSeverity ( Severity      severity );
  1617.  
  1618. virtual int
  1619.  isRecoverable ( ) const;
  1620. #line 128
  1621. IException
  1622.  &setErrorId  ( unsigned long errorId );
  1623.  
  1624. unsigned long
  1625.   errorId       ( ) const;
  1626. #line 135
  1627. virtual IException
  1628.  &addLocation      ( const IExceptionLocation& location );
  1629.  
  1630. unsigned long
  1631.   locationCount ( ) const;
  1632.  
  1633. const IExceptionLocation
  1634.  *locationAtIndex ( unsigned long locationIndex ) const;
  1635. #line 145
  1636. virtual const char
  1637.  *name ( ) const;
  1638. #line 149
  1639. static IException::TraceFn
  1640.  *setTraceFunction ( IException::TraceFn& traceFunction );
  1641.  
  1642. virtual IException
  1643.  &logExceptionData ( );
  1644. #line 156
  1645. virtual void
  1646.   terminate ( );
  1647. #line 160
  1648. static void
  1649.   assertParameter ( const char*        exceptionText,
  1650.                     IExceptionLocation location );
  1651.  
  1652. private:
  1653.  
  1654. IException
  1655.  &operator= ( const IException& exc );
  1656. #line 170
  1657. friend class IException::TraceFn;
  1658.  
  1659. Severity
  1660.   exsevCl;
  1661. unsigned long
  1662.   ulClErrorId;
  1663. IExceptionLocation
  1664.   exlocClArray[5];
  1665. unsigned long
  1666.   ulexlocClCount,
  1667.   ulClTxtLvlCount;
  1668. IExcText
  1669.  *msgtxtClTop;
  1670. ErrorCodeGroup
  1671.   fErrorGroup;
  1672. };  
  1673. #line 251
  1674. class IAccessError : public IException {public: IAccessError(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IAccessError(); IAccessError(const IAccessError &);private: operator = ( const IAccessError & );};
  1675. class IAssertionFailure : public IException {public: IAssertionFailure(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IAssertionFailure(); IAssertionFailure(const IAssertionFailure &);private: operator = ( const IAssertionFailure & );};
  1676. class IDeviceError : public IException {public: IDeviceError(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IDeviceError(); IDeviceError(const IDeviceError &);private: operator = ( const IDeviceError & );};
  1677. class IInvalidParameter : public IException {public: IInvalidParameter(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IInvalidParameter(); IInvalidParameter(const IInvalidParameter &);private: operator = ( const IInvalidParameter & );};
  1678. class IInvalidRequest : public IException {public: IInvalidRequest(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IInvalidRequest(); IInvalidRequest(const IInvalidRequest &);private: operator = ( const IInvalidRequest & );};
  1679. class IResourceExhausted : public IException {public: IResourceExhausted(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IResourceExhausted(); IResourceExhausted(const IResourceExhausted &);private: operator = ( const IResourceExhausted & );};
  1680.   class IOutOfMemory : public IResourceExhausted {public: IOutOfMemory(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IOutOfMemory(); IOutOfMemory(const IOutOfMemory &);private: operator = ( const IOutOfMemory & );};
  1681.   class IOutOfSystemResource : public IResourceExhausted {public: IOutOfSystemResource(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IOutOfSystemResource(); IOutOfSystemResource(const IOutOfSystemResource &);private: operator = ( const IOutOfSystemResource & );};
  1682.   class IOutOfWindowResource : public IResourceExhausted {public: IOutOfWindowResource(const char* a, unsigned long b = 0, Severity c = IException::unrecoverable); virtual const char* name() const; virtual ~IOutOfWindowResource(); IOutOfWindowResource(const IOutOfWindowResource &);private: operator = ( const IOutOfWindowResource & );};
  1683. #line 20 "F:\vacpp\INCLUDE\ibase.hpp"
  1684. #pragma pack(4)
  1685.  
  1686. class ostream;
  1687. class IString;
  1688.  
  1689. class IBase {
  1690. public:
  1691. #line 29
  1692. typedef int
  1693.   Boolean;
  1694.  
  1695. enum BooleanConstants {
  1696.   false = 0,
  1697.   true  = 1
  1698.   };
  1699. #line 38
  1700. static char
  1701.  *messageFile    ( );
  1702.  
  1703. static void
  1704.   setMessageFile ( const char *msgFileName );
  1705.  
  1706. static IMessageText
  1707.   messageText    ( unsigned long messageId,
  1708.                    const char*   textInsert1 = 0,
  1709.                    const char*   textInsert2 = 0,
  1710.                    const char*   textInsert3 = 0,
  1711.                    const char*   textInsert4 = 0,
  1712.                    const char*   textInsert5 = 0,
  1713.                    const char*   textInsert6 = 0,
  1714.                    const char*   textInsert7 = 0,
  1715.                    const char*   textInsert8 = 0,
  1716.                    const char*   textInsert9 = 0 );
  1717. #line 57
  1718. friend ostream
  1719.  &operator <<    ( ostream     &aStream,
  1720.                    const IBase &anObject );
  1721.  
  1722. IString
  1723.   asString       ( ) const,
  1724.   asDebugInfo    ( ) const;
  1725.  
  1726. struct Version   {
  1727. unsigned short
  1728.   major,
  1729.   minor;
  1730.   };
  1731.  
  1732. static Version
  1733.   version        ( );
  1734.  
  1735. protected:
  1736.  
  1737. static IException::Severity
  1738.   unrecoverable,
  1739.   recoverable;
  1740.  
  1741. private:
  1742.  
  1743. static char
  1744.  *msgFile;
  1745. };  
  1746. #line 137
  1747. extern "C" {
  1748. #line 140
  1749. typedef void * _System
  1750.   IWinProc ( unsigned long, unsigned long, void *, void * );
  1751.  
  1752. }
  1753. #line 222
  1754.        #pragma library("CPPOOC3.LIB")
  1755. #line 226
  1756. #pragma pack()
  1757. #line 31 "F:\vacpp\INCLUDE\isynonym.hpp"
  1758. typedef int Boolean;
  1759. #line 35
  1760. typedef int IBoolean;
  1761. #line 40
  1762.    enum {
  1763.       false = 0,
  1764.       False = 0,
  1765.       true  = 1,
  1766.       True  = 1
  1767.    };
  1768. #line 20 "F:\vacpp\INCLUDE\ivbase.hpp"
  1769. #pragma pack(4)
  1770.  
  1771. class ostream;
  1772. class IString;
  1773.  
  1774. class IVBase : public IBase {
  1775. public:
  1776.  
  1777. virtual
  1778.  ~IVBase         ( );
  1779. #line 32
  1780. friend ostream
  1781.  &operator <<    ( ostream      &aStream,
  1782.                    const IVBase &anObject );
  1783.  
  1784. virtual IString
  1785.   asString       ( ) const,
  1786.   asDebugInfo    ( ) const;
  1787.  
  1788. };  
  1789.  
  1790. #pragma pack()
  1791. #line 21 "F:\vacpp\INCLUDE\inotify.hpp"
  1792. class IObserver;
  1793. class IObserverList;
  1794. class INotificationEvent;
  1795. class IEventData;
  1796.  
  1797. #pragma pack(4)
  1798.  
  1799. typedef const char
  1800.  *INotificationId;
  1801.  
  1802. class INotifier : public IVBase {
  1803. typedef IVBase
  1804.   Inherited;
  1805.  
  1806. public:
  1807.  
  1808.   INotifier  ( );
  1809. virtual
  1810.   ~INotifier ( );
  1811. #line 42
  1812. virtual INotifier
  1813.  &enableNotification        ( Boolean enable=true ) = 0,
  1814.  &disableNotification       ( ) = 0;
  1815.  
  1816. virtual Boolean
  1817.   isEnabledForNotification  ( ) const = 0;
  1818. #line 50
  1819. virtual INotifier
  1820.  ¬ifyObservers       ( const INotificationEvent& event ) = 0;
  1821.  
  1822. protected:
  1823.  
  1824. virtual INotifier
  1825.  &addObserver           ( IObserver&        observer,
  1826.                           const IEventData& userData ) = 0,
  1827.  &removeObserver        ( IObserver&  observer ) = 0,
  1828.  &removeAllObservers    ( ) = 0;
  1829.  
  1830. virtual IObserverList
  1831.  &observerList          ( ) const = 0;
  1832. #line 65
  1833. virtual INotifier
  1834.   ¬ifyObservers      ( const INotificationId& id ) = 0;
  1835.  
  1836. private:
  1837.  
  1838. friend class IObserver;
  1839. };   
  1840.  
  1841. #pragma pack()
  1842. #line 28 "F:\vacpp\INCLUDE\ibitflag.hpp"
  1843. #pragma pack(4)
  1844. #line 31
  1845. class IBitFlag : public IBase {
  1846. typedef IBase
  1847.   Inherited;
  1848. public:
  1849.  
  1850. unsigned long
  1851.   asUnsignedLong         ( ) const,
  1852.   asExtendedUnsignedLong ( ) const;
  1853. #line 41
  1854. Boolean
  1855.   operator ==    ( const IBitFlag &rhs ) const,
  1856.   operator !=    ( const IBitFlag &rhs ) const;
  1857.  
  1858. protected:
  1859.  
  1860.   IBitFlag       ( unsigned long value,
  1861.                    unsigned long extendedValue = 0 );
  1862. #line 51
  1863. IBitFlag
  1864.  &setValue       ( unsigned long value ,
  1865.                    unsigned long extendedValue = 0 );
  1866.  
  1867. private:
  1868.  
  1869. unsigned long
  1870.   ulClValue,
  1871.   ulClExtValue;
  1872. };  
  1873. #line 279
  1874. #pragma pack()
  1875. #line 28 "F:\vacpp\INCLUDE\ibitflag.inl"
  1876. inline IBitFlag :: IBitFlag ( unsigned long value,
  1877.                               unsigned long extValue )
  1878.        : ulClValue( value ),
  1879.          ulClExtValue( extValue )
  1880. {}
  1881.  
  1882. inline unsigned long  IBitFlag :: asUnsignedLong ( ) const
  1883. {
  1884.   return( this->ulClValue );
  1885. }
  1886.  
  1887. inline unsigned long  IBitFlag :: asExtendedUnsignedLong ( ) const
  1888. {
  1889.   return( this->ulClExtValue );
  1890. }
  1891.  
  1892. inline IBitFlag  &IBitFlag :: setValue ( unsigned long value,
  1893.                                          unsigned long extValue )
  1894. {
  1895.   this->ulClValue = value;
  1896.   this->ulClExtValue = extValue;
  1897.   return( *this );
  1898. }
  1899.  
  1900. inline IBase::Boolean  IBitFlag :: operator == ( const IBitFlag &rhs ) const
  1901. {
  1902.   return( (this->asUnsignedLong() == rhs.asUnsignedLong())  &
  1903.           (this->asExtendedUnsignedLong() == rhs.asExtendedUnsignedLong()) );
  1904. }
  1905.  
  1906. inline IBase::Boolean  IBitFlag :: operator != ( const IBitFlag &rhs ) const
  1907. {
  1908.   return( (this->asUnsignedLong() != rhs.asUnsignedLong())  |
  1909.           (this->asExtendedUnsignedLong() != rhs.asExtendedUnsignedLong()) );
  1910. }
  1911. #line 25 "F:\vacpp\INCLUDE\ievtdata.hpp"
  1912. #pragma pack(4)
  1913.  
  1914. class IEventData : public IBase {
  1915. typedef IBase
  1916.   Inherited;
  1917. public:
  1918.  
  1919.   IEventData ( );
  1920.   IEventData ( void*            value );
  1921.   IEventData ( unsigned long    value );
  1922.   IEventData ( int              value );
  1923.   IEventData ( BooleanConstants value );
  1924.  
  1925.   IEventData ( unsigned short   lowValue,
  1926.                unsigned short   hiValue );
  1927.  
  1928.   IEventData ( unsigned short   lowValue,
  1929.                char             lowByte,
  1930.                char             hiByte );
  1931. #line 46
  1932. unsigned short
  1933.   lowNumber    ( ) const,
  1934.   highNumber   ( ) const,
  1935.   number1      ( ) const,
  1936.   number2      ( ) const;
  1937.  
  1938. char
  1939.   lowLowByte   ( ) const,
  1940.   lowHighByte  ( ) const,
  1941.   highLowByte  ( ) const,
  1942.   highHighByte ( ) const,
  1943.   char1        ( ) const,
  1944.   char2        ( ) const,
  1945.   char3        ( ) const,
  1946.   char4        ( ) const;
  1947. #line 63
  1948. unsigned long
  1949.   asUnsignedLong         ( ) const;
  1950. long
  1951.   asLong                 ( ) const;
  1952.  
  1953.   operator char*         ( ) const;
  1954.   operator unsigned long ( ) const;
  1955.  
  1956. private:
  1957.  
  1958. void
  1959.  *pvClMsg;
  1960. };  
  1961.  
  1962. typedef IEventData IEventParameter1;
  1963. typedef IEventData IEventParameter2;
  1964. typedef IEventData ILowEventParameter;
  1965. typedef IEventData IHighEventParameter;
  1966. typedef IEventData IEventResult;
  1967.  
  1968. #pragma pack()
  1969. #line 28 "F:\vacpp\INCLUDE\ievtdata.inl"
  1970. inline IEventData :: IEventData ( )
  1971.   : pvClMsg ( 0 )
  1972.   { }
  1973. inline IEventData :: IEventData ( void* value )
  1974.   {
  1975.   pvClMsg = value;
  1976.   }
  1977. inline IEventData :: IEventData ( unsigned long value )
  1978.   {
  1979.   pvClMsg = (void*)value;
  1980.   }
  1981. inline IEventData :: IEventData ( int value )
  1982.   {
  1983.   pvClMsg = (void*)((unsigned long)value);
  1984.   }
  1985. inline IEventData :: IEventData ( BooleanConstants value )
  1986.   {
  1987.   pvClMsg = (void*)((unsigned long)value);
  1988.   }
  1989. inline IEventData :: IEventData ( unsigned short lowValue,
  1990.                                   unsigned short hiValue )
  1991.   {
  1992.   pvClMsg = (void*)(lowValue | (unsigned long)hiValue << 16);
  1993.   }
  1994. inline IEventData :: IEventData ( unsigned short lowValue,
  1995.                                   char lowByte, char hiByte )
  1996.   {
  1997.   unsigned short hiValue = (unsigned short)(lowByte | (unsigned short)hiByte <<
  1998.   8); pvClMsg = (void*)(lowValue | (unsigned long)hiValue << 16);
  1999.   }
  2000. inline char  IEventData :: lowLowByte ( ) const
  2001.   {
  2002.   return (char)(unsigned long)pvClMsg;
  2003.   }
  2004. inline char  IEventData :: lowHighByte ( ) const
  2005.   {
  2006.   return (char)((unsigned long)pvClMsg >> 8);
  2007.   }
  2008. inline char  IEventData :: highLowByte ( ) const
  2009.   {
  2010.   return (char)((unsigned long)pvClMsg >> 16);
  2011.   }
  2012. inline char  IEventData :: highHighByte ( ) const
  2013.   {
  2014.   return (char)((unsigned long)pvClMsg >> 24);
  2015.   }
  2016. inline char  IEventData :: char1 ( ) const
  2017.   {
  2018.   return lowLowByte();
  2019.   }
  2020. inline char  IEventData :: char2 ( ) const
  2021.   {
  2022.   return lowHighByte();
  2023.   }
  2024. inline char  IEventData :: char3 ( ) const
  2025.   {
  2026.   return highLowByte();
  2027.   }
  2028. inline char  IEventData :: char4 ( ) const
  2029.   {
  2030.   return highHighByte();
  2031.   }
  2032. inline unsigned short  IEventData :: lowNumber ( ) const
  2033.   {
  2034.   return (unsigned short)(unsigned long)pvClMsg;
  2035.   }
  2036. inline unsigned short  IEventData :: highNumber ( ) const
  2037.   {
  2038.   return (unsigned short)((unsigned long)pvClMsg >> 16);
  2039.   }
  2040. inline unsigned short  IEventData :: number1 ( ) const
  2041.   {
  2042.   return lowNumber();
  2043.   }
  2044. inline unsigned short  IEventData :: number2 ( ) const
  2045.   {
  2046.   return highNumber();
  2047.   }
  2048. inline unsigned long  IEventData :: asUnsignedLong ( ) const
  2049.   {
  2050.   return (unsigned long)pvClMsg;
  2051.   }
  2052. inline long  IEventData :: asLong ( ) const
  2053.   {
  2054.   return (long)pvClMsg;
  2055.   }
  2056. inline IEventData :: operator char* ( ) const
  2057.   {
  2058.   return (char*)pvClMsg;
  2059.   }
  2060. inline IEventData :: operator unsigned long ( ) const
  2061.   {
  2062.   return (unsigned long)pvClMsg;
  2063.   }
  2064. #line 22 "F:\vacpp\INCLUDE\ibhandle.hpp"
  2065. class ostream;
  2066. class IString;
  2067.  
  2068. #pragma pack(4)
  2069.  
  2070. class IHandle : public IBase {
  2071. typedef IBase
  2072.   Inherited;
  2073. public:
  2074.  
  2075. typedef unsigned long
  2076.   Value;
  2077. #line 36
  2078.   IHandle ( Value value );
  2079. #line 40
  2080. IString
  2081.   asString    ( ) const,
  2082.   asDebugInfo ( ) const;
  2083.  
  2084. friend ostream
  2085.  &operator << ( ostream&       aStream,
  2086.                 const IHandle& aHandle );
  2087.  
  2088. unsigned long
  2089.   asUnsigned  ( ) const;
  2090. #line 52
  2091.   operator Value ( ) const;
  2092.  
  2093. protected:
  2094.  
  2095. Value
  2096.   handle;
  2097. };  
  2098. #line 61
  2099. class ISemaphoreHandle : public IHandle {
  2100. typedef IHandle
  2101.   Inherited;
  2102. public:
  2103.  
  2104.   ISemaphoreHandle ( Value hsem = 0 );
  2105. };  
  2106.  
  2107. #pragma pack()
  2108. #line 28 "F:\vacpp\INCLUDE\ibhandle.inl"
  2109. inline IHandle :: IHandle ( Value value )
  2110.   : handle( value )
  2111.   {
  2112.   }
  2113.  
  2114. inline unsigned long IHandle :: asUnsigned ( ) const
  2115.   {
  2116.   return (unsigned long) this->handle;
  2117.   }
  2118.  
  2119. inline IHandle :: operator Value ( ) const
  2120.   {
  2121.   return this->handle;
  2122.   }
  2123.  
  2124. inline ISemaphoreHandle :: ISemaphoreHandle ( Value value )
  2125.   : IHandle( value )
  2126.   {
  2127.   }
  2128. #line 40 "F:\vacpp\INCLUDE\ihandle.hpp"
  2129. struct _WidgetRec;
  2130. struct _XtAppStruct;
  2131. struct _XGC;
  2132. struct _XDisplay;
  2133. struct _XrmHashBucketRec;
  2134.  
  2135. #pragma pack(4)
  2136.  
  2137. class IWindowHandle : public IHandle {
  2138. typedef IHandle
  2139.   Inherited;
  2140. public:
  2141.  
  2142.   IWindowHandle ( Value hwnd = 0 );
  2143. #line 58
  2144. Boolean
  2145.   isValid ( ) const;
  2146. #line 62
  2147. enum BroadcastTo {
  2148.   descendants,
  2149.   frames,
  2150.   frameDescendants
  2151.   };
  2152.  
  2153. IEventResult
  2154.   sendEvent  ( unsigned long           eventId,
  2155.                const IEventParameter1& parm1 = 0ul,
  2156.                const IEventParameter2& parm2 = 0ul ) const;
  2157.  
  2158. void
  2159.   sendEvents ( unsigned long           eventId,
  2160.                const IEventParameter1& parm1 = 0ul,
  2161.                const IEventParameter2& parm2 = 0ul,
  2162.                BroadcastTo             value = descendants ) const;
  2163.  
  2164. void
  2165.   postEvent  ( unsigned long           eventId,
  2166.                const IEventParameter1& parm1 = 0ul,
  2167.                const IEventParameter2& parm2 = 0ul ) const,
  2168.  
  2169.   postEvents ( unsigned long           eventId,
  2170.                const IEventParameter1& parm1 = 0ul,
  2171.                const IEventParameter2& parm2 = 0ul,
  2172.                BroadcastTo             value = descendants ) const;
  2173.  
  2174. };  
  2175.  
  2176. class IAnchorBlockHandle : public IHandle {
  2177. typedef IHandle
  2178.   Inherited;
  2179. public:
  2180.  
  2181.   IAnchorBlockHandle ( Value hab = 0 );
  2182.  
  2183. };  
  2184. #line 101
  2185. class IModuleHandle : public IHandle {
  2186. typedef IHandle
  2187.   Inherited;
  2188. public:
  2189.  
  2190.   IModuleHandle ( Value hmod = 0 );
  2191.  
  2192. };  
  2193. #line 112
  2194. class IPointerHandle : public IHandle {
  2195. typedef IHandle
  2196.   Inherited;
  2197. public:
  2198.  
  2199.   IPointerHandle ( Value                 hpointer = 0 );
  2200.   IPointerHandle ( const IPointerHandle& aHandle );
  2201.  ~IPointerHandle ( );
  2202.  
  2203. IPointerHandle
  2204.  &operator =     ( const IPointerHandle& aHandle );
  2205.  
  2206. };  
  2207.  
  2208. class ISystemPointerHandle : public IPointerHandle {
  2209. typedef IPointerHandle
  2210.   Inherited;
  2211. public:
  2212.  
  2213. enum Identifier {
  2214.   arrow,
  2215.   text,
  2216.   wait,
  2217.   move,
  2218.   sizeNWSE,
  2219.   sizeNESW,
  2220.   sizeHorizontal,
  2221.   sizeVertical,
  2222.   standardApplication,
  2223.   information,
  2224.   question,
  2225.   error,
  2226.   warning,
  2227.   illegalOperation,
  2228.   singleFile,
  2229.   multipleFile,
  2230.   folder,
  2231.   program,
  2232.   dragFade
  2233.   };
  2234. #line 154
  2235.   ISystemPointerHandle ( Identifier pointerId,
  2236.                          Boolean    makeCopy = false );
  2237.  ~ISystemPointerHandle ( );
  2238.  
  2239. };  
  2240.  
  2241. class IStringHandle : public IHandle {
  2242. typedef IHandle
  2243.   Inherited;
  2244. public:
  2245.  
  2246.   IStringHandle ( Value hstr = 0 );
  2247.  
  2248. };  
  2249. #line 170
  2250. class IPresSpaceHandle : public IHandle {
  2251. typedef IHandle
  2252.   Inherited;
  2253. public:
  2254.  
  2255.   IPresSpaceHandle ( Value hps = 0 );
  2256. };  
  2257.  
  2258. class IBitmapHandle : public IHandle {
  2259. typedef IHandle
  2260.   Inherited;
  2261. public:
  2262.  
  2263.   IBitmapHandle ( Value value = 0 );
  2264.   IBitmapHandle ( const IBitmapHandle& aHandle );
  2265.  ~IBitmapHandle ( );
  2266.  
  2267. IBitmapHandle
  2268.  &operator =    ( const IBitmapHandle& aHandle );
  2269.  
  2270. };  
  2271.  
  2272. class ISystemBitmapHandle : public IBitmapHandle {
  2273. typedef IBitmapHandle
  2274.   Inherited;
  2275. public:
  2276.  
  2277. enum Identifier {
  2278.   systemMenu,
  2279.   systemMenuPressed,
  2280.   scrollBarUpArrow,
  2281.   scrollBarUpArrowPressed,
  2282.   scrollBarUpArrowDisabled,
  2283.   scrollBarDownArrow,
  2284.   scrollBarDownArrowPressed,
  2285.   scrollBarDownArrowDisabled,
  2286.   scrollBarRightArrow,
  2287.   scrollBarRightArrowPressed,
  2288.   scrollBarRightArrowDisabled,
  2289.   scrollBarLeftArrow,
  2290.   scrollBarLeftArrowPressed,
  2291.   scrollBarLeftArrowDisabled,
  2292.   menuCheckMark,
  2293.   menuAttached,
  2294.   checkBoxCheck,
  2295.   comboBoxDownArrow,
  2296.   pushButtonCorners,
  2297.   minimizeButton,
  2298.   minimizeButtonPressed,
  2299.   maximizeButton,
  2300.   maximizeButtonPressed,
  2301.   restoreButton,
  2302.   restoreButtonPressed,
  2303.   childSystemMenu,
  2304.   childSystemMenuPressed,
  2305.   drive,
  2306.   file,
  2307.   folder,
  2308.   collapsedTree,
  2309.   expandedTree,
  2310.   program,
  2311.   sizeBox,
  2312.   smallSystemMenu
  2313.   };
  2314. #line 236
  2315.   ISystemBitmapHandle ( Identifier bitmapId );
  2316.  ~ISystemBitmapHandle ( );
  2317.  
  2318. };  
  2319.  
  2320. class IProfileHandle : public IHandle {
  2321. typedef IHandle
  2322.   Inherited;
  2323. public:
  2324.  
  2325.   IProfileHandle ( Value hini = 0 );
  2326. #line 249
  2327. };  
  2328.  
  2329. class IMessageQueueHandle : public IHandle {
  2330. typedef IHandle
  2331.   Inherited;
  2332. public:
  2333.  
  2334.   IMessageQueueHandle ( Value hmq = 0 );
  2335. #line 259
  2336. void
  2337.   postEvent  ( unsigned long           eventId,
  2338.                const IEventParameter1& parm1 = 0ul,
  2339.                const IEventParameter2& parm2 = 0ul ) const;
  2340. static void
  2341.   postEvent  ( const IMessageQueueHandle&    handle,
  2342.                unsigned long           eventId,
  2343.                const IEventParameter1& parm1 = 0ul,
  2344.                const IEventParameter2& parm2 = 0ul ),
  2345.  
  2346.   postEvents ( unsigned long           eventId,
  2347.                const IEventParameter1& parm1 = 0ul,
  2348.                const IEventParameter2& parm2 = 0ul );
  2349. };  
  2350.  
  2351. class IAccelTblHandle : public IHandle {
  2352. typedef IHandle
  2353.   Inherited;
  2354. public:
  2355.  
  2356.   IAccelTblHandle ( Value haccel = 0 );
  2357.  
  2358. };  
  2359.  
  2360. class IThreadId : public IHandle {
  2361. typedef IHandle
  2362.   Inherited;
  2363. public:
  2364.  
  2365.   IThreadId ( Value tid = 0 );
  2366.  
  2367. };  
  2368.  
  2369. class IProcessId : public IHandle {
  2370. typedef IHandle
  2371.   Inherited;
  2372. public:
  2373.  
  2374.   IProcessId ( Value pid = 0 );
  2375.  
  2376. };  
  2377.  
  2378. class IEnumHandle : public IHandle {
  2379. typedef IHandle
  2380.   Inherited;
  2381. public:
  2382.  
  2383.   IEnumHandle ( Value henum = 0 );
  2384.  
  2385. };  
  2386.  
  2387. class IRegionHandle : public IHandle {
  2388. typedef IHandle
  2389.   Inherited;
  2390. public:
  2391.  
  2392.   IRegionHandle ( Value hregion = 0 );
  2393.  
  2394. };  
  2395. #line 321
  2396. typedef IWindowHandle IMenuHandle;
  2397.  
  2398. #pragma pack()
  2399. #line 40 "F:\vacpp\INCLUDE\ihandle.inl"
  2400. inline IWindowHandle :: IWindowHandle ( Value value )
  2401.   : IHandle( value )
  2402.   {
  2403.   }
  2404.  
  2405. inline IAnchorBlockHandle :: IAnchorBlockHandle ( Value value )
  2406.   : IHandle( value )
  2407.   {
  2408.   }
  2409.  
  2410. inline IModuleHandle :: IModuleHandle ( Value value )
  2411.   : IHandle( value )
  2412.   {
  2413.   }
  2414.  
  2415. inline IStringHandle :: IStringHandle ( Value value )
  2416.   : IHandle( value )
  2417.   {
  2418.   }
  2419. #line 71
  2420. inline IPresSpaceHandle :: IPresSpaceHandle ( Value value )
  2421.   : IHandle( value )
  2422.   {
  2423.   }
  2424. #line 88
  2425. inline IProfileHandle :: IProfileHandle ( Value value )
  2426.   : IHandle( value )
  2427.   {
  2428.   }
  2429.  
  2430. inline IMessageQueueHandle :: IMessageQueueHandle ( Value value )
  2431.   : IHandle( value )
  2432.   {
  2433.   }
  2434.  
  2435. inline IAccelTblHandle :: IAccelTblHandle ( Value value )
  2436.   : IHandle( value )
  2437.   {
  2438.   }
  2439.  
  2440. inline IProcessId :: IProcessId ( Value value )
  2441.   : IHandle( value )
  2442.   {
  2443.   }
  2444.  
  2445. inline IThreadId :: IThreadId ( Value value )
  2446.   : IHandle( value )
  2447.   {
  2448.   }
  2449.  
  2450. inline IEnumHandle :: IEnumHandle ( Value value )
  2451.   : IHandle( value )
  2452.   {
  2453.   }
  2454.  
  2455. inline IRegionHandle :: IRegionHandle ( Value value )
  2456.   : IHandle( value )
  2457.   {
  2458.   }
  2459. #line 22 "F:\vacpp\INCLUDE\ievent.hpp"
  2460. class IEventPrivateData;
  2461. class IWindow;
  2462.  
  2463. #pragma pack(4)
  2464.  
  2465. class IEvent : public IVBase {
  2466. typedef IVBase
  2467.   Inherited;
  2468. public:
  2469.  
  2470.   IEvent    ( const IWindowHandle&    handle,
  2471.               unsigned long           eventId,
  2472.               const IEventParameter1& parameter1,
  2473.               const IEventParameter2& parameter2 );
  2474.  
  2475.   IEvent    ( IWindow*                window,
  2476.               unsigned long           eventId,
  2477.               const IEventParameter1& parameter1,
  2478.               const IEventParameter2& parameter2 );
  2479.  
  2480.   IEvent    ( const IEvent&           event );
  2481.  
  2482. IEvent
  2483.  &operator= ( const IEvent&           event );
  2484.  
  2485. virtual
  2486.  ~IEvent    ( );
  2487. #line 51
  2488. unsigned long
  2489.   eventId    ( ) const;
  2490.  
  2491. IEventParameter1
  2492.   parameter1 ( ) const;
  2493.  
  2494. IEventParameter2
  2495.   parameter2 ( ) const;
  2496.  
  2497. IEventResult
  2498.   result     ( ) const;
  2499.  
  2500. IEvent
  2501.  &setResult  ( const IEventResult& eventResult ),
  2502.  &setResult  ( Boolean             eventResult );
  2503. #line 69
  2504. virtual IWindow
  2505.  *window               ( ) const,
  2506.  *dispatchingWindow    ( ) const,
  2507.  *controlWindow        ( ) const;
  2508.  
  2509. IWindowHandle
  2510.   handle               ( ) const,
  2511.   controlHandle        ( ) const;
  2512.  
  2513. IEvent
  2514.  &setHandle            ( const IWindowHandle& handle ),
  2515.  &setDispatchingHandle ( const IWindowHandle& handle ),
  2516.  &setControlHandle     ( const IWindowHandle& handle );
  2517.  
  2518. private:
  2519.  
  2520. friend class IWindow;
  2521. IWindowHandle
  2522.   hCl,
  2523.   p_dispatchingHandle,
  2524.   p_controlHandle;
  2525. unsigned long
  2526.   ulClEvtId;
  2527. IEventData
  2528.   epCl1,
  2529.   epCl2;
  2530. IEventResult
  2531.   erCl;
  2532. IEventPrivateData
  2533.  *pData;
  2534. };  
  2535.  
  2536. #pragma pack()
  2537. #line 29 "F:\vacpp\INCLUDE\ievent.inl"
  2538. inline  IWindowHandle IEvent::handle() const
  2539. { return hCl; }
  2540.  
  2541. inline  IWindowHandle IEvent::controlHandle() const
  2542. { return p_controlHandle; }
  2543.  
  2544. inline  IEvent& IEvent::setHandle  ( const IWindowHandle& handle )
  2545.   hCl = handle;  
  2546.   return *this;
  2547. }
  2548.  
  2549. inline  IEvent& IEvent::setDispatchingHandle  ( const IWindowHandle& handle )
  2550.   p_dispatchingHandle = handle;  
  2551.   return *this;
  2552. }
  2553.  
  2554. inline  IEvent& IEvent::setControlHandle  ( const IWindowHandle& handle )
  2555.   p_controlHandle = handle;  
  2556.   return *this;
  2557. }
  2558.  
  2559. inline unsigned long IEvent::eventId() const
  2560. { return ulClEvtId; }
  2561.  
  2562. inline  IEventParameter1 IEvent::parameter1() const
  2563. { return epCl1; }
  2564.  
  2565. inline IEventParameter2 IEvent::parameter2() const
  2566. { return epCl2; }
  2567.  
  2568. inline IEvent& IEvent::setResult(const IEventResult& er)
  2569.   erCl = er;
  2570.   return *this;
  2571. }
  2572.  
  2573. inline IEvent& IEvent::setResult(Boolean er)
  2574. {
  2575.   erCl = (IEventResult)er;
  2576.   return *this; 
  2577. }
  2578.  
  2579. inline IEventResult IEvent::result() const
  2580. { return erCl; }
  2581. #line 23 "F:\vacpp\INCLUDE\ipoint.hpp"
  2582. #pragma pack(4)
  2583.  
  2584. struct _POINTL;
  2585. struct _RECTL;
  2586. struct _SIZEL;
  2587. struct tagPOINT;
  2588. struct tagSIZE;
  2589. class  ISize;
  2590. class  IWindowHandle;
  2591. typedef struct _SIZEL SIZEL;
  2592.  
  2593. class IPair : public IBase {
  2594. typedef IBase
  2595.   Inherited;
  2596. public:
  2597.  
  2598. typedef long Coord;
  2599. #line 42
  2600.   IPair ( );
  2601.   IPair ( Coord init );
  2602.   IPair ( Coord coord1,
  2603.           Coord coord2 );
  2604. #line 48
  2605. Coord
  2606.   coord1 ( )  const,
  2607.   coord2 ( )  const;
  2608.  
  2609. IPair
  2610.  &setCoord1 ( Coord coord1 ),
  2611.  &setCoord2 ( Coord coord2 );
  2612. #line 57
  2613. IPair
  2614.   minimum ( const IPair& aPair ) const,
  2615.   maximum ( const IPair& aPair ) const;
  2616. #line 62
  2617. IPair
  2618.   operator - ( ) const;
  2619. #line 66
  2620. Boolean
  2621.   operator == ( const IPair& aPair ) const,
  2622.   operator != ( const IPair& aPair ) const,
  2623.   operator <  ( const IPair& aPair ) const,
  2624.   operator >  ( const IPair& aPair ) const,
  2625.   operator <= ( const IPair& aPair ) const,
  2626.   operator >= ( const IPair& aPair ) const;
  2627. #line 75
  2628. friend IPair
  2629.   operator +  ( const IPair& pair1,  const IPair& pair2       ),
  2630.   operator *  ( const IPair& pair1,  const IPair& pair2       ),
  2631.   operator *  ( const IPair& pair1,  double       multiplier  ),
  2632.   operator -  ( const IPair& pair1,  const IPair& pair2       ),
  2633.   operator /  ( const IPair& pair1,  const IPair& pair2       ),
  2634.   operator /  ( const IPair& pair1,  double       divisor     ),
  2635.   operator %  ( const IPair& pair1,  const IPair& pair2       ),
  2636.   operator %  ( const IPair& aPair1, long         divisor     );
  2637.  
  2638. IPair
  2639.  &operator += ( const IPair& aPair ),
  2640.  &operator -= ( const IPair& aPair ),
  2641.  &operator *= ( const IPair& aPair ),
  2642.  &operator *= ( double multiplier ),
  2643.  &operator /= ( const IPair& aPair ),
  2644.  &operator /= ( double divisor ),
  2645.  &operator %= ( const IPair& aPair ),
  2646.  &operator %= ( long  divisor );
  2647. #line 96
  2648. IPair
  2649.  &scaleBy  ( double xFactor, double yFactor ),
  2650.   scaledBy ( double xFactor, double yFactor ) const;
  2651. #line 101
  2652. double
  2653.   distanceFrom ( const IPair& aPair ) const;
  2654.  
  2655. long
  2656.   dotProduct ( const IPair& aPair ) const;
  2657.  
  2658. IPair
  2659.  &transpose ( );
  2660.  
  2661. friend IPair
  2662.   transpose ( const IPair& aPair );
  2663. #line 114
  2664. IString
  2665.   asString ( ) const,
  2666.   asDebugInfo ( ) const;
  2667. #line 119
  2668. friend ostream
  2669.  &operator << ( ostream&          aStream,
  2670.                 const IPair&      aRectangle );
  2671.  
  2672. private:
  2673.  
  2674. Coord
  2675.   coordCl1,
  2676.   coordCl2;
  2677. };  
  2678.  
  2679. class IPoint : public IPair {
  2680. typedef IPair
  2681.   Inherited;
  2682.  
  2683. public:
  2684.  
  2685.   IPoint ( );
  2686.   IPoint ( const IPair& pair );
  2687.   IPoint ( Coord x, Coord y );
  2688.   IPoint ( const struct _POINTL& ptl );
  2689. #line 142
  2690. Coord
  2691.   x      ( ) const,
  2692.   y      ( ) const;
  2693.  
  2694. IPoint
  2695.  &setX ( Coord X ),
  2696.  &setY ( Coord Y );
  2697. #line 151
  2698. struct _POINTL
  2699.   asPOINTL ( ) const;
  2700. };  
  2701.  
  2702. class ISize  : public IPair {
  2703. typedef IPair
  2704.   Inherited;
  2705. public:
  2706.  
  2707.   ISize ( );
  2708.   ISize ( const IPair& pair );
  2709.   ISize ( Coord width, Coord height );
  2710.   ISize ( const SIZEL& sizl );
  2711.   ISize ( const struct _RECTL& rcl );
  2712. #line 167
  2713. Coord
  2714.   width  ( ) const,
  2715.   height ( ) const;
  2716.  
  2717. ISize
  2718.  &setWidth  ( Coord cx ),
  2719.  &setHeight ( Coord cy );
  2720. #line 176
  2721. SIZEL
  2722.   asSIZEL ( ) const;
  2723. };  
  2724.  
  2725. class IRange : public IPair {
  2726. typedef IPair
  2727.   Inherited;
  2728.  
  2729. public:
  2730.  
  2731.   IRange ( );
  2732.   IRange ( const IPair& aPair );
  2733.   IRange ( Coord lower, Coord upper );
  2734. #line 191
  2735. Coord
  2736.   lowerBound ( ) const,
  2737.   upperBound ( ) const;
  2738.  
  2739. IRange
  2740.  &setUpperBound ( Coord upper ),
  2741.  &setLowerBound ( Coord lower );
  2742. #line 200
  2743. Boolean
  2744.   includes ( Coord aValue ) const;
  2745. };  
  2746.  
  2747. #pragma pack()
  2748. #line 29 "F:\vacpp\INCLUDE\ipoint.inl"
  2749. inline IPair::IPair ( )
  2750.   : coordCl1( 0 ), coordCl2( 0 )
  2751.   {
  2752.   }
  2753. inline IPair::IPair ( Coord init )
  2754.   : coordCl1( init ), coordCl2( init )
  2755.   {
  2756.   }
  2757. inline IPair::IPair ( Coord coord1, Coord coord2 )
  2758.   : coordCl1( coord1 ), coordCl2( coord2 )
  2759.   {
  2760.   }
  2761. inline IPair::Coord  IPair::coord1 ( )  const
  2762.   {
  2763.   return coordCl1;
  2764.   }
  2765. inline IPair::Coord  IPair::coord2 ( )  const
  2766.   {
  2767.   return coordCl2;
  2768.   }
  2769. inline IPair& IPair::setCoord1 ( Coord coord1 )
  2770.   {
  2771.   coordCl1 = coord1;
  2772.   return *this;
  2773.   }
  2774. inline IPair& IPair::setCoord2 ( Coord coord2 )
  2775.   {
  2776.   coordCl2 = coord2;
  2777.   return *this;
  2778.   }
  2779. inline IPair IPair::operator - ( ) const
  2780.   {
  2781.   return IPair( -coordCl1, -coordCl2 );
  2782.   }
  2783. inline IBase::Boolean IPair::operator == ( const IPair& pair ) const
  2784.   {
  2785.   return ( coordCl1 == pair.coordCl1 && coordCl2 == pair.coordCl2);
  2786.   }
  2787. inline IBase::Boolean IPair::operator != ( const IPair& pair ) const
  2788.   {
  2789.   return !( *this == pair );
  2790.   }
  2791. inline IBase::Boolean IPair::operator <  ( const IPair& pair ) const
  2792.   {
  2793.   return ( coordCl1 < pair.coordCl1 && coordCl2 < pair.coordCl2 );
  2794.   }
  2795. inline IBase::Boolean IPair::operator >  ( const IPair& pair ) const
  2796.   {
  2797.   return ( coordCl1 > pair.coordCl1 && coordCl2 > pair.coordCl2 );
  2798.   }
  2799. inline IBase::Boolean IPair::operator <= (const IPair& pair ) const
  2800.   {
  2801.   return ( coordCl1 <= pair.coordCl1 && coordCl2 <= pair.coordCl2);
  2802.   }
  2803. inline IBase::Boolean IPair::operator >= ( const IPair& pair ) const
  2804.   {
  2805.   return ( coordCl1 >= pair.coordCl1 && coordCl2 >= pair.coordCl2);
  2806.   }
  2807. inline IPair operator +  ( const IPair& pair1, const IPair& pair2 )
  2808.   {
  2809.   return IPair( pair1.coordCl1 + pair2.coordCl1,
  2810.                 pair1.coordCl2 + pair2.coordCl2 );
  2811.   }
  2812. inline IPair operator *  ( const IPair& pair1, const IPair& pair2 )
  2813.   {
  2814.   return IPair( pair1.coordCl1 * pair2.coordCl1,
  2815.                 pair1.coordCl2 * pair2.coordCl2 );
  2816.   }
  2817. inline IPair operator *  ( const IPair& pair1, double d )
  2818.   {
  2819.   return IPair( (IPair::Coord)(d * pair1.coordCl1),
  2820.                 (IPair::Coord)(d * pair1.coordCl2));
  2821.   }
  2822. inline IPair operator -  ( const IPair& pair1, const IPair& pair2 )
  2823.   {
  2824.   return IPair( pair1.coordCl1 - pair2.coordCl1,
  2825.                 pair1.coordCl2 - pair2.coordCl2);
  2826.   }
  2827. inline IPair operator / ( const IPair& pair1, const IPair& pair2 )
  2828.   {
  2829.   return IPair( pair1.coordCl1 / pair2.coordCl1,
  2830.                 pair1.coordCl2 / pair2.coordCl2);
  2831.   }
  2832. inline IPair operator /  ( const IPair& pair1, double d )
  2833.   {
  2834.   return IPair( (IPair::Coord)(pair1.coordCl1 / d),
  2835.                 (IPair::Coord)(pair1.coordCl2 / d) );
  2836.   }
  2837. inline IPair operator %  ( const IPair& pair1, const IPair& pair2 )
  2838.   {
  2839.   return IPair( pair1.coordCl1 % pair2.coordCl1,
  2840.                 pair1.coordCl2 % pair2.coordCl2 );
  2841.   }
  2842. inline IPair operator %  ( const IPair& pair1, IPair::Coord d )
  2843.   {
  2844.   return IPair( pair1.coordCl1 % d,
  2845.                 pair1.coordCl2 % d );
  2846.   }
  2847. inline IPair& IPair::operator += ( const IPair &aPair )
  2848.   {
  2849.   return (*this).setCoord1( coordCl1 + aPair.coordCl1 ).
  2850.                  setCoord2( coordCl2 + aPair.coordCl2 );
  2851.   }
  2852. inline IPair& IPair::operator -= ( const IPair &aPair )
  2853.   {
  2854.   return (*this).setCoord1( coordCl1 - aPair.coordCl1 ).
  2855.                  setCoord2( coordCl2 - aPair.coordCl2 );
  2856.   }
  2857. inline IPair& IPair::operator *= ( const IPair &aPair )
  2858.   {
  2859.   return (*this).setCoord1( coordCl1 * aPair.coordCl1 ).
  2860.                  setCoord2( coordCl2 * aPair.coordCl2 );
  2861.   }
  2862. inline IPair& IPair::operator *= ( double d )
  2863.   {
  2864.   return (*this).setCoord1( (Coord)(coordCl1 * d) ).
  2865.                  setCoord2( (Coord)(coordCl2 * d) );
  2866.   }
  2867. inline IPair& IPair::operator /= ( const IPair &aPair )
  2868.   {
  2869.   return (*this).setCoord1( coordCl1 / aPair.coordCl1 ).
  2870.                  setCoord2( coordCl2 / aPair.coordCl2 );
  2871.   }
  2872. inline IPair& IPair::operator /= ( double d )
  2873.   {
  2874.   return (*this).setCoord1( (Coord)(coordCl1 / d) ).
  2875.                  setCoord2( (Coord)(coordCl2 / d) );
  2876.   }
  2877. inline IPair& IPair::operator %= ( const IPair &aPair )
  2878.   {
  2879.   return (*this).setCoord1( coordCl1 % aPair.coordCl1 ).
  2880.                  setCoord2( coordCl2 % aPair.coordCl2 );
  2881.   }
  2882. inline IPair& IPair::operator %= ( Coord d )
  2883.   {
  2884.   return (*this).setCoord1( coordCl1 % d ).
  2885.                  setCoord2( coordCl2 % d );
  2886.   }
  2887. inline long IPair::dotProduct( const IPair &aPair ) const
  2888.   {
  2889.   return coordCl1 * aPair.coordCl1 + coordCl2 * aPair.coordCl2;
  2890.   }
  2891. inline IPair transpose ( const IPair &aPair )
  2892.   {
  2893.   return IPair( aPair.coordCl2, aPair.coordCl1 );
  2894.   }
  2895. inline IPair& IPair::transpose ( )
  2896.   {
  2897.   *this = ::transpose( *this );
  2898.   return *this;
  2899.   }
  2900. inline IPair& IPair :: scaleBy ( double xfact, double yfact )
  2901.   {
  2902.   setCoord1( (Coord)(coordCl1 * xfact) ).setCoord2( (Coord)(coordCl2 * yfact) );
  2903.   return *this;
  2904.   }
  2905. inline IPair IPair :: scaledBy ( double xfact, double yfact ) const
  2906.   {
  2907.   IPair result( *this );
  2908.   return result.scaleBy( xfact, yfact );
  2909.   }
  2910.  
  2911. inline IPoint::IPoint ( )
  2912.   {
  2913.   }
  2914. inline IPoint::IPoint ( const IPair& pair )
  2915.   : IPair( pair )
  2916.   {
  2917.   }
  2918. inline IPoint::IPoint ( Coord x, Coord y )
  2919.   : IPair( x, y )
  2920.   {
  2921.   }
  2922. #line 214
  2923. inline IPair::Coord IPoint::x ( ) const
  2924.   {
  2925.   return coord1();
  2926.   }
  2927. inline IPair::Coord IPoint::y ( ) const
  2928.   {
  2929.   return coord2();
  2930.   }
  2931. inline IPoint& IPoint::setX ( Coord x )
  2932.   {
  2933.   setCoord1( x );
  2934.   return *this;
  2935.   }
  2936. inline IPoint& IPoint::setY ( Coord y )
  2937.   {
  2938.   setCoord2( y );
  2939.   return *this;
  2940.   }
  2941. #line 234
  2942. inline ISize::ISize ( )
  2943.   {
  2944.   }
  2945. inline ISize::ISize ( const IPair& pair )
  2946.   : IPair( pair )
  2947.   {
  2948.   }
  2949. inline ISize::ISize ( Coord width, Coord height )
  2950.   : IPair( width, height )
  2951.   {
  2952.   }
  2953. #line 263
  2954. inline IPair::Coord ISize::width ( ) const
  2955.   {
  2956.   return  coord1();
  2957.   }
  2958. inline IPair::Coord ISize::height ( ) const
  2959.   {
  2960.   return  coord2();
  2961.   }
  2962. inline ISize& ISize::setWidth ( Coord cx )
  2963.   {
  2964.   setCoord1( cx );
  2965.   return *this;
  2966.   }
  2967. inline ISize& ISize::setHeight ( Coord cy )
  2968.   {
  2969.   setCoord2( cy );
  2970.   return *this;
  2971.   }
  2972. #line 283
  2973. inline IRange::IRange ( )
  2974.   : IPair( 0, 0 )
  2975.   {
  2976.   }
  2977. inline IRange::IRange ( const IPair& pair )
  2978.   : IPair( pair )
  2979.   {
  2980.   }
  2981. inline IRange::IRange ( Coord lowerBound, Coord upperBound )
  2982.   : IPair( lowerBound, upperBound )
  2983.   {
  2984.   }
  2985. inline IPair::Coord IRange::lowerBound ( ) const
  2986.   {
  2987.   return coord1();
  2988.   }
  2989. inline IPair::Coord IRange::upperBound ( ) const
  2990.   {
  2991.   return coord2();
  2992.   }
  2993. inline IRange& IRange::setLowerBound ( Coord lowerBound )
  2994.   {
  2995.   setCoord1( lowerBound );
  2996.   return *this;
  2997.   }
  2998. inline IRange& IRange::setUpperBound ( Coord upperBound )
  2999.   {
  3000.   setCoord2( upperBound );
  3001.   return *this;
  3002.   }
  3003. inline IBase::Boolean IRange::includes ( Coord aValue ) const
  3004.   {
  3005.   return ( aValue >= lowerBound() && aValue <= upperBound() );
  3006.   }
  3007. #line 25 "F:\vacpp\INCLUDE\iwindow.hpp"
  3008. extern "C" {
  3009.   extern void* _System _pfnwpICWinProc ( unsigned long,
  3010.                                          unsigned long,
  3011.                                          void*,
  3012.                                          void* );
  3013. }
  3014.  
  3015. class IColor;
  3016. class IDMItemProvider;
  3017. class IException;
  3018. class IFont;
  3019. class IHandler;
  3020. class INotificationEvent;
  3021. class IRectangle;
  3022. class IString;
  3023. class IBidiSettingsData;
  3024. class IChildCursorData;
  3025. class IWindowBidiData;
  3026. class IWindowData;
  3027. class IWindowNotifyHandler;
  3028. class IGraphicContext;
  3029.  
  3030. #pragma pack(4)
  3031.  
  3032. class IWindow : public INotifier {
  3033. typedef INotifier
  3034.   Inherited;
  3035.  
  3036. public:
  3037.  
  3038.   IWindow ( unsigned long        identifier,
  3039.             IWindow*             parent );
  3040.   IWindow ( const IWindowHandle& handle );
  3041.  
  3042. virtual
  3043.  ~IWindow ( );
  3044. #line 63
  3045. class Style : public IBitFlag{friend class IWindow;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle operator & ( const NegatedStyle &aFlag ) const { NegatedStyle aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style operator | ( const Style &aFlag ) const { Style aResult ( asUnsignedLong() | aFlag.asUnsignedLong(), asExtendedUnsignedLong() | aFlag.asExtendedUnsignedLong() ); return aResult; } Style operator & ( const NegatedStyle &aFlag ) const { Style aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } unsigned long operator & ( const Style &aFlag ) const { unsigned long ulResult = asUnsignedLong() & aFlag.asUnsignedLong(); return ( ulResult | (asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong()) ); }protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  3046. static const Style
  3047.   noStyle,
  3048.   visible,
  3049.   disabled,
  3050.   clipChildren,
  3051.   clipSiblings,
  3052.   clipToParent,
  3053.   saveBits,
  3054.   synchPaint;
  3055.  
  3056. virtual unsigned long
  3057.   convertToGUIStyle ( const IBitFlag& style,
  3058.                       Boolean         extendedOnly = false ) const;
  3059. #line 79
  3060. virtual IWindow
  3061.  &moveTo     ( const IPoint& newPosition ),
  3062.  &sizeTo     ( const ISize& newSize ),
  3063.  &moveSizeTo ( const IRectangle& newSizeAndPosition );
  3064.  
  3065. virtual IPoint
  3066.   position   ( ) const;
  3067.  
  3068. virtual ISize
  3069.   parentSize ( ) const,
  3070.   size       ( ) const;
  3071.  
  3072. virtual IRectangle
  3073.   nativeRect ( ) const,
  3074.   rect       ( ) const;
  3075.  
  3076. static ISize
  3077.   parentSize ( const IWindowHandle& windowHandle );
  3078. #line 99
  3079. virtual IWindow
  3080.  &setOwner                  ( const IWindow* newOwner ),
  3081.  &setParent                 ( const IWindow* newParent ),
  3082.  &setId                     ( unsigned long  newIdentifier ),
  3083.  &enable                    ( Boolean        enableWindow = true ),
  3084.  &disable                   ( ),
  3085.  &setFocus                  ( );
  3086.  
  3087. IWindow
  3088.  *parent                    ( ) const,
  3089.  *owner                     ( ) const;
  3090.  
  3091. Boolean
  3092.   isEnabled                 ( ) const,
  3093.   hasFocus                  ( ) const,
  3094.   isValid                   ( ) const;
  3095.  
  3096. virtual Boolean
  3097.   isGroup                   ( ) const,
  3098.   isTabStop                 ( ) const,
  3099.   isFrameWindow             ( ) const;
  3100.  
  3101. static IWindow
  3102.  *desktopWindow             ( );
  3103.  
  3104. static IWindow
  3105.  *objectWindow              ( );
  3106.  
  3107. virtual IWindowHandle
  3108.   handle                    ( ) const;
  3109.  
  3110. static IWindow
  3111.  *windowWithHandle          ( const IWindowHandle& windowHandle,
  3112.                               Boolean              allThreads = true ),
  3113.  *windowWithOwner           ( unsigned long        identifier,
  3114.                               const IWindow*       owner,
  3115.                               Boolean              allThreads = true ),
  3116.  *windowWithParent          ( unsigned long        identifier,
  3117.                               const IWindow*       parent,
  3118.                               Boolean              allThreads = true );
  3119.  
  3120. static IWindowHandle
  3121.   handleWithParent          ( unsigned long        identifier,
  3122.                               const IWindowHandle& parent );
  3123.  
  3124. static Boolean
  3125.   isWindowValid             ( const IWindow*       window );
  3126.  
  3127. static IWindowHandle
  3128.   handleWithPointerCaptured ( );
  3129.  
  3130. unsigned long
  3131.   id                        ( ) const;
  3132.  
  3133. IMessageQueueHandle
  3134.   messageQueue              ( ) const;
  3135. #line 157
  3136. virtual IWindow
  3137.  &capturePointer     ( Boolean capture = true ),
  3138.  &releasePointer     ( );
  3139.  
  3140. virtual Boolean
  3141.   hasPointerCaptured ( ) const;
  3142. #line 165
  3143. static void
  3144.   movePointerTo   ( const IPoint& position );
  3145.  
  3146. static IPoint
  3147.   pointerPosition ( );
  3148. #line 172
  3149. enum SiblingOrder {
  3150.   onTopOfSiblings,
  3151.   behindSiblings
  3152.   };
  3153.  
  3154. virtual IWindow
  3155.  &positionBehindSiblings ( ),
  3156.  &positionOnSiblings     ( ),
  3157.  &positionBehindSibling  ( const IWindowHandle& siblingWindow );
  3158.  
  3159. static void
  3160.  setDefaultOrdering      ( SiblingOrder         order );
  3161. static SiblingOrder
  3162.  defaultOrdering         ( );
  3163. #line 188
  3164. enum EventType {
  3165.   command=1,
  3166.   systemCommand,
  3167.   control,
  3168.   help,
  3169.   character
  3170.   };
  3171.  
  3172. virtual const IWindow
  3173.  &postEvent ( unsigned long           eventId,
  3174.               const IEventParameter1& parm1 = 0,
  3175.               const IEventParameter2& parm2 = 0 ) const,
  3176.  &postEvent ( const IEvent&           event )     const,
  3177.  &postEvent ( EventType               eventType,
  3178.               const IEventParameter1& parm1 = 0,
  3179.               const IEventParameter2& parm2 = 0 ) const;
  3180.  
  3181. virtual IEventResult
  3182.   sendEvent ( unsigned long           eventId,
  3183.               const IEventParameter1& parm1 = 0,
  3184.               const IEventParameter2& parm2 = 0 ) const,
  3185.   sendEvent ( const IEvent&           event )     const,
  3186.   sendEvent ( EventType               eventType,
  3187.               const IEventParameter1& parm1 = 0,
  3188.               const IEventParameter2& parm2 = 0 ) const;
  3189. #line 215
  3190. enum RefreshType {
  3191.   paintAll,
  3192.   immediate,
  3193.   paintAllImmediate
  3194.   };
  3195.  
  3196. virtual IWindow
  3197.  &show               ( Boolean           showWindow = true ),
  3198.  &hide               ( ),
  3199.  &enableUpdate       ( Boolean           enableWindow = true ),
  3200.  &disableUpdate      ( ),
  3201.  &refresh            ( RefreshType       type=paintAll ),
  3202.  &refresh            ( const IRectangle& invalidRectangle,
  3203.                        Boolean           immediate=false ),
  3204.  &showSourceEmphasis ( Boolean           show = true ),
  3205.  &hideSourceEmphasis ( );
  3206.  
  3207. Boolean
  3208.   isVisible          ( ) const,
  3209.   isShowing          ( ) const;
  3210.  
  3211. virtual IPresSpaceHandle
  3212.   presSpace          ( ) const;
  3213.  
  3214. virtual void
  3215.   releasePresSpace   ( const IPresSpaceHandle& presentationSpaceHandle ) const;
  3216. #line 245
  3217. IWindow
  3218.  &setAutoDeleteObject  ( Boolean autoDelete = true ),
  3219.  &setAutoDestroyWindow ( Boolean autoDestroy = false );
  3220.  
  3221. Boolean
  3222.   isAutoDeleteObject   ( ) const,
  3223.   isAutoDestroyWindow  ( ) const;
  3224. #line 254
  3225. IDMItemProvider
  3226.  *itemProvider    ( ) const;
  3227.  
  3228. IWindow
  3229.  &setItemProvider ( IDMItemProvider* dragProvider );
  3230.  
  3231. class ChildCursor : public IVBase {
  3232. typedef IVBase
  3233.   Inherited;
  3234. public:
  3235.  
  3236.   ChildCursor ( IWindow& parent );
  3237. virtual
  3238.  ~ChildCursor ( );
  3239. #line 270
  3240. virtual Boolean
  3241.   setToFirst ( ),
  3242.   setToNext  ( ),
  3243.   isValid    ( ) const;
  3244.  
  3245. virtual void
  3246.   invalidate ( );
  3247.  
  3248. private:
  3249.  
  3250. ChildCursor
  3251.  &operator =  ( const ChildCursor& cursor );
  3252.   ChildCursor ( const ChildCursor& cursor );
  3253. #line 285
  3254. friend class IWindow;
  3255.  
  3256. IChildCursorData
  3257.  *pCursorData;
  3258.  
  3259. IEnumHandle
  3260.   enumHandle;
  3261. #line 294
  3262. IWindowHandle
  3263.   hwnd,
  3264.   hwndParent;
  3265. };  
  3266. #line 300
  3267. IWindowHandle
  3268.   childAt ( const ChildCursor& cursor ) const;
  3269. #line 304
  3270. virtual IWindowHandle
  3271.   defaultPushButton  ( ) const,
  3272.   matchForMnemonic   ( unsigned short character ) const;
  3273.  
  3274. enum Layout {
  3275.   windowCreated=1,
  3276.   colorChanged=2,
  3277.   sizeChanged=4,
  3278.   minimumSizeChanged=8,
  3279.   childMinimumSizeChanged=16,
  3280.   fontChanged=32,
  3281.   fontPropogated=64,
  3282.   layoutChanged=128,
  3283.   immediateUpdate=256,
  3284.   childWindowCreated=512,
  3285.   windowDestroyed=1024,
  3286.   childWindowDestroyed=2048
  3287.   };
  3288.  
  3289. virtual IWindow
  3290.  &setLayoutDistorted ( unsigned long layoutAttributesOn,
  3291.                        unsigned long layoutAttributesOff );
  3292.  
  3293. virtual Boolean
  3294.   isLayoutDistorted  ( unsigned long layoutAttribute ) const;
  3295.  
  3296. IWindow
  3297.  &resetMinimumSize   ( ),
  3298.  &setMinimumSize     ( const ISize& size );
  3299.  
  3300. ISize
  3301.   minimumSize        ( Boolean windowCalculatedSize = false ) const;
  3302.  
  3303. virtual IRectangle
  3304.   layoutAdjustment   ( ) const,
  3305.   visibleRectangle   ( ) const;
  3306. #line 342
  3307. static IPoint
  3308.   mapPoint ( const IPoint&        point,
  3309.              const IWindowHandle& from,
  3310.              const IWindowHandle& to );
  3311. #line 348
  3312. virtual IString
  3313.   asString    ( ) const,
  3314.   asDebugInfo ( ) const;
  3315.  
  3316. class ExceptionFn : public IVBase {
  3317. typedef IVBase
  3318.   Inherited;
  3319. public:
  3320.  
  3321. virtual
  3322.  ~ExceptionFn ( );
  3323. #line 361
  3324. virtual Boolean
  3325.   handleException ( IException& dispatcherException,
  3326.                     IEvent&     exceptionEvent ) = 0;
  3327. };  
  3328. #line 368
  3329. static IWindow::ExceptionFn
  3330.  *setExceptionFunction ( IWindow::ExceptionFn* exceptionFunction ),
  3331.  *exceptionFunction    ( );
  3332.  
  3333. virtual Boolean
  3334.   handleException      ( IException& dispatcherException,
  3335.                          IEvent&     exceptionEvent );
  3336. #line 377
  3337. virtual IColor
  3338.   foregroundColor              ( ) const,
  3339.   backgroundColor              ( ) const,
  3340.   borderColor                  ( ) const;
  3341.  
  3342. virtual IWindow
  3343.  &setForegroundColor           ( const IColor& color ),
  3344.  &setBackgroundColor           ( const IColor& color ),
  3345.  &setBorderColor               ( const IColor& color );
  3346.  
  3347. virtual IColor
  3348.   shadowColor                  ( ) const,
  3349.   disabledForegroundColor      ( ) const,
  3350.   disabledBackgroundColor      ( ) const,
  3351.   hiliteForegroundColor        ( ) const,
  3352.   hiliteBackgroundColor        ( ) const,
  3353.   activeColor                  ( ) const,
  3354.   inactiveColor                ( ) const;
  3355.  
  3356. virtual IWindow
  3357.  &setShadowColor               ( const IColor& color ),
  3358.  &setDisabledForegroundColor   ( const IColor& color ),
  3359.  &setDisabledBackgroundColor   ( const IColor& color ),
  3360.  &setHiliteForegroundColor     ( const IColor& color ),
  3361.  &setHiliteBackgroundColor     ( const IColor& color ),
  3362.  &setActiveColor               ( const IColor& color ),
  3363.  &setInactiveColor             ( const IColor& color ),
  3364.  &resetForegroundColor         ( ),
  3365.  &resetBackgroundColor         ( ),
  3366.  &resetBorderColor             ( ),
  3367.  &resetShadowColor             ( ),
  3368.  &resetDisabledForegroundColor ( ),
  3369.  &resetDisabledBackgroundColor ( ),
  3370.  &resetHiliteForegroundColor   ( ),
  3371.  &resetHiliteBackgroundColor   ( ),
  3372.  &resetActiveColor             ( ),
  3373.  &resetInactiveColor           ( );
  3374. #line 416
  3375. virtual IWindow
  3376.  &setFont       ( const IFont& font );
  3377.  
  3378. virtual IWindow
  3379.  &resetFont     ( );
  3380.  
  3381. virtual IFont
  3382.   font          ( ) const;
  3383.  
  3384. ISize
  3385.   characterSize ( ) const;
  3386. #line 429
  3387. virtual IWindow
  3388.  &enableNotification       ( Boolean enable = true ),
  3389.  &disableNotification      ( );
  3390.  
  3391. virtual Boolean
  3392.   isEnabledForNotification ( ) const;
  3393.  
  3394. virtual IWindow
  3395.  ¬ifyObservers          ( const INotificationEvent& event );
  3396. #line 440
  3397. static INotificationId const
  3398.   sizeId,
  3399.   positionId,
  3400.   visibleId,
  3401.   enableId,
  3402.   deleteId,
  3403.   focusId,
  3404.   foregroundColorId,
  3405.   backgroundColorId,
  3406.   borderColorId,
  3407.   shadowColorId,
  3408.   disabledForegroundColorId,
  3409.   disabledBackgroundColorId,
  3410.   activeColorId,
  3411.   inactiveColorId,
  3412.   hiliteForegroundColorId,
  3413.   hiliteBackgroundColorId,
  3414.   fontId,
  3415.   commandId,
  3416.   systemCommandId;
  3417. #line 462
  3418. Boolean
  3419.   dispatchRemainingHandlers ( IEvent& event, Boolean callDefProc = true );
  3420. #line 466
  3421. class BidiSettings;
  3422.  
  3423. Boolean
  3424.   isBidiSupported ( ) const;
  3425.  
  3426. enum BidiTextType {
  3427.   visual,
  3428.   implicit
  3429.   };
  3430.  
  3431. enum BidiTextOrientation {
  3432.   textLeftToRight,
  3433.   textRightToLeft,
  3434.   textContextual
  3435.   };
  3436.  
  3437. enum BidiLayout {
  3438.   layoutLeftToRight,
  3439.   layoutRightToLeft
  3440.   };
  3441.  
  3442. enum BidiNumeralType {
  3443.   arabic,
  3444.   asStored,
  3445.   national,
  3446.   contextual
  3447.   };
  3448.  
  3449. enum BidiTextShape {
  3450.   displayShaped,
  3451.   saveShaped,
  3452.   nominalShape,
  3453.   initialShape,
  3454.   middleShape,
  3455.   finalShape,
  3456.   isolatedShape
  3457.   };
  3458.  
  3459. virtual IWindow
  3460.  &applyBidiSettings ( const BidiSettings& settings,
  3461.                       Boolean             childInherit = true,
  3462.                       Boolean             refresh      = true );
  3463.  
  3464. class BidiSettings : public IVBase {
  3465. typedef IVBase
  3466.   Inherited;
  3467. public:
  3468.  
  3469.   BidiSettings ( const IWindow& window );
  3470.  
  3471. virtual
  3472.  ~BidiSettings ( );
  3473. #line 520
  3474. virtual BidiSettings
  3475.  &setTextType                   ( BidiTextType        textType ),
  3476.  &setTextOrientation            ( BidiTextOrientation textOrientation ),
  3477.  &setWindowLayout               ( BidiLayout          windowLayout ),
  3478.  &setNumeralDisplay             ( BidiNumeralType     numeralDisplay ),
  3479.  &enableSymmetricSwapping       ( Boolean             enable = true ),
  3480.  &disableSymmetricSwapping      ( ),
  3481.  &enableWordByWordReordering    ( Boolean             enable = true ),
  3482.  &disableWordByWordReordering   ( ),
  3483.  &setTextShape                  ( BidiTextShape       textShape );
  3484.  
  3485. BidiTextType
  3486.   textType                      ( ) const;
  3487. BidiTextOrientation
  3488.   textOrientation               ( ) const;
  3489. BidiLayout
  3490.   windowLayout                  ( ) const;
  3491. BidiNumeralType
  3492.   numeralDisplay                ( ) const;
  3493. Boolean
  3494.   isSymmetricSwappingEnabled    ( ) const;
  3495. Boolean
  3496.   isWordByWordReorderingEnabled ( ) const;
  3497. BidiTextShape
  3498.   textShape                     ( ) const;
  3499.  
  3500. private:
  3501.  
  3502. friend class IWindow;
  3503.   BidiSettings ( const BidiSettings& settings );
  3504. BidiSettings
  3505.  &operator=    ( const BidiSettings& settings );
  3506. #line 554
  3507. IBidiSettingsData
  3508.  *fBidiSettingsData;
  3509. };  
  3510. #line 559
  3511. protected:
  3512.  
  3513. virtual IWindowHandle
  3514.  create            ( unsigned long         id,
  3515.                      const char*           text,
  3516.                      unsigned long         style,
  3517.                      const char*           windowClass,
  3518.                      const IWindowHandle&  parent,
  3519.                      const IWindowHandle&  owner,
  3520.                      const IRectangle&     initRect,
  3521.                      const void*           ctlData,
  3522.                      const void*           presParams,
  3523.                      IWindow::SiblingOrder ordering = defaultOrdering() );
  3524. #line 574
  3525. IWindow
  3526.  &addHandler       ( IHandler* newHandler ),
  3527.  &removeHandler    ( IHandler* oldHandler );
  3528.  
  3529. Boolean
  3530.   isPrimaryWindow  ( ) const;
  3531.  
  3532. IWindow
  3533.  &setColor         ( unsigned long colorArea,
  3534.                      const IColor& color ),
  3535.  &resetColor       ( unsigned long colorArea );
  3536.  
  3537. virtual IWindow
  3538.  &setStyle         ( unsigned long style ),
  3539.  &setExtendedStyle ( unsigned long extendedStyle );
  3540.  
  3541. virtual unsigned long
  3542.   style            ( ) const,
  3543.   extendedStyle    ( ) const;
  3544.  
  3545. IColor
  3546.   color            ( unsigned long colorArea ) const,
  3547.   color            ( unsigned long colorArea,
  3548.                      const IColor& defaultColor ) const;
  3549. unsigned short
  3550.   windowUShort     ( long index ) const;
  3551.  
  3552. unsigned long
  3553.   windowULong      ( long index ) const;
  3554.  
  3555. IWindow
  3556.  &setWindowData    ( long           index,
  3557.                      unsigned short ushort ),
  3558.  &setWindowData    ( long           index,
  3559.                      unsigned long  ulong );
  3560. #line 613
  3561.   IWindow ( );
  3562. #line 616
  3563. virtual ISize
  3564.   calcMinimumSize  ( ) const;
  3565. IWindow
  3566.  &saveMinimumSize  ( const ISize& size );
  3567. ISize
  3568.   savedMinimumSize ( ) const;
  3569. #line 624
  3570. IWindow
  3571.  &startHandlingEventsFor ( const IWindowHandle& windowHandle ),
  3572.  &startHandlingEventsFor ( unsigned long        identifier,
  3573.                            IWindow*             parent );
  3574. static void
  3575.   addToWindowSet         ( IWindow*             window,
  3576.                            const IWindowHandle& windowHandle ),
  3577.   removeFromWindowSet    ( IWindow*             window );
  3578. #line 634
  3579. Boolean
  3580.   dispatch               ( IEvent& event );
  3581.  
  3582. IWindow
  3583.  &defaultProcedure       ( IEvent& event );
  3584.  
  3585. Boolean
  3586.   deleteIsInProcess      ( ) const;
  3587. #line 645
  3588. virtual IWindow
  3589.  &addObserver            ( IObserver&            observer,
  3590.                            const IEventData&     userData = IEventData(0) ),
  3591.  &removeObserver         ( IObserver&            observer ),
  3592.  &removeAllObservers     ( );
  3593.  
  3594. IObserverList
  3595.  &observerList           ( ) const;
  3596.  
  3597. IWindow
  3598.  &setNotificationHandler ( IWindowNotifyHandler* notifyHandler );
  3599.  
  3600. IWindowNotifyHandler
  3601.  *notificationHandler    ( ) const;
  3602.  
  3603. virtual IWindow
  3604.   ¬ifyObservers ( const INotificationId& notification );
  3605.  
  3606. private:
  3607.  
  3608. IWindow     ( const IWindow& window );
  3609. IWindow
  3610.  &operator= ( const IWindow& window );
  3611. #line 670
  3612. friend class IHandle;
  3613. friend class IHandler;
  3614. friend class IFileDialog;
  3615. friend class IFontDialog;
  3616. friend class IWindow::BidiSettings;
  3617. #line 677
  3618. enum State {
  3619.   autoDeleteObject=1,
  3620.   autoDestroyWindow=2,
  3621.   deleteInProcess=4,
  3622.   primaryWindow=8,
  3623.   addedToList=16,
  3624.   dispatchInProcess=32,
  3625.   needsDelete=64,
  3626.   updateRHtInProgress=128,
  3627.   neverBeenShown=256,
  3628.   forgetBitGravity=512
  3629.   };
  3630.  
  3631. friend unsigned long const
  3632.  &key             ( IWindow* const& window );
  3633.  
  3634. friend void* _System
  3635.   _pfnwpICWinProc ( unsigned long hwnd,
  3636.                     unsigned long ulMsg,
  3637.                     void*         mp1,
  3638.                     void*         mp2 );
  3639. #line 701
  3640. static void
  3641.   cleanUpHandler          ( IHandler& handler );
  3642. #line 706
  3643. IWindow
  3644.  &setDeleteInProcess  ( ),
  3645.  &cleanUp             ( );
  3646.  
  3647. IWinProc
  3648.  *setDefaultProcedure ( IWinProc* newDefProc );
  3649.  
  3650. static IWindowBidiData
  3651.  *fgBidiData;
  3652.  
  3653. IWindowData
  3654.  *pWindowData;
  3655.  
  3656. unsigned long
  3657.   hwnd;
  3658. #line 724
  3659. public:
  3660. static IWindow
  3661.  *windowWithId ( unsigned long        identifier,
  3662.                  const IWindow*       owner,
  3663.                  Boolean              allThreads = true );
  3664. Boolean
  3665.   isDisabled   ( ) const;
  3666. static IWindowHandle
  3667.   handleWithId ( unsigned long        identifier,
  3668.                  const IWindowHandle& parent );
  3669. virtual IWindow
  3670.  &refresh      ( Boolean              refreshChildren );
  3671.  
  3672. };  
  3673. #line 740
  3674. class IBidiSettings : public IVBase {
  3675. typedef IVBase
  3676.   Inherited;
  3677. public:
  3678.  
  3679.   IBidiSettings ( const IWindow&         window );
  3680.   IBidiSettings ( const IWindowHandle    windowHandle );
  3681.   IBidiSettings ( const IGraphicContext& graphicContext );
  3682.   IBidiSettings ( const IPresSpaceHandle presSpace );
  3683.  
  3684. virtual
  3685.  ~IBidiSettings ( );
  3686. #line 754
  3687. static Boolean
  3688.   isBidiSupported ( );
  3689.  
  3690. virtual IBidiSettings
  3691.  &apply ( const IWindow&         window,
  3692.           Boolean                childInherit = true,
  3693.           Boolean                refresh      = true ),
  3694.  &apply ( const IWindowHandle    windowHandle,
  3695.           Boolean                childInherit = true,
  3696.           Boolean                refresh      = true ),
  3697.  &apply ( const IGraphicContext& graphicContext ),
  3698.  &apply ( const IPresSpaceHandle presSpace );
  3699. #line 768
  3700. enum BidiTextType {
  3701.   visual,
  3702.   implicit
  3703.   };
  3704.  
  3705. enum BidiTextOrientation {
  3706.   textLeftToRight,
  3707.   textRightToLeft,
  3708.   textContextual
  3709.   };
  3710.  
  3711. enum BidiLayout {
  3712.   layoutLeftToRight,
  3713.   layoutRightToLeft
  3714.   };
  3715.  
  3716. enum BidiNumeralType {
  3717.   arabic,
  3718.   asStored,
  3719.   national,
  3720.   contextual
  3721.   };
  3722.  
  3723. enum BidiTextShape {
  3724.   displayShaped,
  3725.   saveShaped,
  3726.   nominalShape,
  3727.   initialShape,
  3728.   middleShape,
  3729.   finalShape,
  3730.   isolatedShape
  3731.   };
  3732.  
  3733. virtual IBidiSettings
  3734.  &setTextType                   ( BidiTextType        textType ),
  3735.  &setTextOrientation            ( BidiTextOrientation textOrientation ),
  3736.  &setWindowLayout               ( BidiLayout          windowLayout ),
  3737.  &setNumeralDisplay             ( BidiNumeralType     numeralDisplay ),
  3738.  &enableSymmetricSwapping       ( Boolean             enable = true ),
  3739.  &disableSymmetricSwapping      ( ),
  3740.  &enableWordByWordReordering    ( Boolean             enable = true ),
  3741.  &disableWordByWordReordering   ( ),
  3742.  &setTextShape                  ( BidiTextShape       textShape );
  3743.  
  3744. BidiTextType
  3745.   textType                      ( ) const;
  3746. BidiTextOrientation
  3747.   textOrientation               ( ) const;
  3748. BidiLayout
  3749.   windowLayout                  ( ) const;
  3750. BidiNumeralType
  3751.   numeralDisplay                ( ) const;
  3752. Boolean
  3753.   isSymmetricSwappingEnabled    ( ) const;
  3754. Boolean
  3755.   isWordByWordReorderingEnabled ( ) const;
  3756. BidiTextShape
  3757.   textShape                     ( ) const;
  3758.  
  3759. private:
  3760.  
  3761.   IBidiSettings ( const IBidiSettings& settings );
  3762. IBidiSettings
  3763.  &operator=    ( const IBidiSettings& settings );
  3764. #line 834
  3765. IBidiSettingsData
  3766.  *fBidiSettingsData;
  3767. };  
  3768. #line 839
  3769. #pragma pack()
  3770. #line 28 "F:\vacpp\INCLUDE\iwindow.inl"
  3771. inline unsigned long const& key (IWindow* const& k)
  3772. {
  3773.   return k->hwnd;
  3774. }
  3775. #line 20 "F:\vacpp\INCLUDE\icmdevt.hpp"
  3776. #pragma pack(4)
  3777.  
  3778. class ICommandEvent : public IEvent {
  3779. typedef IEvent
  3780.   Inherited;
  3781. public:
  3782.  
  3783.   ICommandEvent ( const IEvent& event );
  3784. virtual
  3785.  ~ICommandEvent ( );
  3786. #line 32
  3787. enum Source {
  3788.   pushButton,
  3789.   menu,
  3790.   accelerator,
  3791.   unknown
  3792. };
  3793.  
  3794. Source
  3795.   source      ( ) const;
  3796. unsigned long
  3797.   commandId   ( ) const;
  3798.  
  3799. Boolean
  3800.   isFromFrame ( ) const;
  3801. };  
  3802.  
  3803. #pragma pack()
  3804. #line 28 "F:\vacpp\INCLUDE\icmdevt.inl"
  3805. inline unsigned long  ICommandEvent :: commandId ( ) const
  3806.   {
  3807.   return parameter1().number1();
  3808.   }
  3809. inline IBase::Boolean  ICommandEvent :: isFromFrame ( ) const
  3810.   {
  3811.  
  3812.   return (parameter2().number1() & 0x8000) ? true : false;
  3813. #line 40
  3814.   }
  3815. #line 22 "F:\vacpp\INCLUDE\irect.hpp"
  3816. #pragma pack(4)
  3817.  
  3818. struct _RECTL;
  3819. struct tagRECT;
  3820. #line 28
  3821. class IRectangle : public IBase {
  3822. typedef IBase
  3823.   Inherited;
  3824. public:
  3825.  
  3826.  typedef IPair::Coord Coord;
  3827. #line 36
  3828.   IRectangle ( );
  3829.  
  3830.   IRectangle ( const IPoint& point1,
  3831.                const IPoint& point2 );
  3832.  
  3833.   IRectangle ( const IPoint& point,
  3834.                const ISize&  size );
  3835.  
  3836.   IRectangle ( Coord point1X,
  3837.                Coord point1Y,
  3838.                Coord point2X,
  3839.                Coord point2Y );
  3840.  
  3841.   IRectangle ( const struct _RECTL& rectl);
  3842.  
  3843.   IRectangle ( Coord width,
  3844.                Coord height      );
  3845.   IRectangle ( const IPair& pair );
  3846. #line 56
  3847. IPoint
  3848.   minXMinY        ( ) const,
  3849.   minXCenterY     ( ) const,
  3850.   minXMaxY        ( ) const,
  3851.   centerXMinY     ( ) const,
  3852.   centerXCenterY  ( ) const,
  3853.   centerXMaxY     ( ) const,
  3854.   maxXMinY        ( ) const,
  3855.   maxXCenterY     ( ) const,
  3856.   maxXMaxY        ( ) const;
  3857. #line 69
  3858. ISize
  3859.   size   ( ) const;
  3860.  
  3861. Coord
  3862.   area   ( ) const,
  3863.   height ( ) const,
  3864.   minX   ( ) const,
  3865.   minY   ( ) const,
  3866.   maxX   ( ) const,
  3867.   maxY   ( ) const,
  3868.   width  ( ) const;
  3869. #line 82
  3870. struct _RECTL
  3871.   asRECTL ( ) const;
  3872.  
  3873. IString
  3874.   asString    ( ) const,
  3875.   asDebugInfo ( ) const;
  3876. #line 90
  3877. Boolean
  3878.   operator == ( const IRectangle& rectangle ) const,
  3879.   operator != ( const IRectangle& rectangle ) const;
  3880. #line 95
  3881. IRectangle
  3882.   operator &  ( const IRectangle& rectangle ) const,
  3883.  &operator &= ( const IRectangle& rectangle ),
  3884.   operator |  ( const IRectangle& rectangle ) const,
  3885.  &operator |= ( const IRectangle& rectangle );
  3886. #line 102
  3887. IRectangle
  3888.   ¢erAt   ( const IPoint& point    ),
  3889.    centeredAt ( const IPoint& point    ) const,
  3890.   &expandBy   ( const IPair&  pair     ),
  3891.   &expandBy   ( Coord         coord    ),
  3892.    expandedBy ( const IPair&  pair     ) const,
  3893.    expandedBy ( Coord         coord    ) const,
  3894.   &moveBy     ( const IPair&  pair     ),
  3895.    movedBy    ( const IPair&  pair     ) const,
  3896.   &moveTo     ( const IPoint& point    ),
  3897.    movedTo    ( const IPoint& point    ) const,
  3898.   &scaleBy    ( const IPair&  pair     ),
  3899.   &scaleBy    ( Coord         coord    ),
  3900.   &scaleBy    ( double        factor   ),
  3901.   &scaleBy    ( double        xfactor,
  3902.                 double        yfactor  ),
  3903.    scaledBy   ( const IPair&  pair     ) const,
  3904.    scaledBy   ( Coord         coord    ) const,
  3905.    scaledBy   ( double        factor   ) const,
  3906.    scaledBy   ( double        xfactor,
  3907.                 double        yfactor  ) const,
  3908.   &shrinkBy   ( const IPair&  pair     ),
  3909.   &shrinkBy   ( Coord         coord    ),
  3910.    shrunkBy   ( const IPair&  pair     ) const,
  3911.    shrunkBy   ( Coord         coord    ) const,
  3912.   &sizeTo     ( const IPair&  pair     ),
  3913.    sizedTo    ( const IPair&  pair     ) const,
  3914.   &sizeBy     ( const IPair&  pair     ),
  3915.   &sizeBy     ( Coord         factor   ),
  3916.   &sizeBy     ( double        factor   ),
  3917.   &sizeBy     ( double        xfactor,
  3918.                 double        yfactor  ),
  3919.    sizedBy    ( const IPair&  pair     ) const,
  3920.    sizedBy    ( Coord         factor   ) const,
  3921.    sizedBy    ( double        factor   ) const,
  3922.    sizedBy    ( double        xfactor,
  3923.                 double        yfactor  ) const;
  3924. #line 141
  3925. Boolean
  3926.   contains   ( const IPoint&     point     ) const,
  3927.   contains   ( const IRectangle& rectangle ) const,
  3928.   intersects ( const IRectangle& rectangle ) const;
  3929. #line 147
  3930. IPoint
  3931.   bottomLeft   ( ) const,
  3932.   bottomCenter ( ) const,
  3933.   bottomRight  ( ) const,
  3934.   center       ( ) const,
  3935.   leftCenter   ( ) const,
  3936.   rightCenter  ( ) const,
  3937.   topLeft      ( ) const,
  3938.   topCenter    ( ) const,
  3939.   topRight     ( ) const;
  3940.  
  3941. Coord
  3942.   bottom ( ) const,
  3943.   left   ( ) const,
  3944.   right  ( ) const,
  3945.   top    ( ) const;
  3946. #line 165
  3947. friend ostream
  3948.  &operator << ( ostream&          stream,
  3949.                 const IRectangle& rectangle );
  3950.  
  3951. protected:
  3952.  
  3953. IRectangle
  3954.  &validate ( );
  3955.  
  3956. private:
  3957.  
  3958. IPoint
  3959.   origin,
  3960.   corner;
  3961. };  
  3962.  
  3963. #pragma pack()
  3964. #line 29 "F:\vacpp\INCLUDE\irect.inl"
  3965. inline IRectangle :: IRectangle ( )
  3966.   : origin( 0, 0 ), corner( 0, 0 )
  3967.   {
  3968.   }
  3969. inline IRectangle :: IRectangle ( const IPoint &point1,
  3970.                                   const IPoint &point2 )
  3971.   : origin( point1.minimum( point2 ) ), corner( point1.maximum( point2 ) )
  3972.   {
  3973.   }
  3974. inline IRectangle :: IRectangle ( const IPoint &aPoint,
  3975.                                   const ISize  &aSize )
  3976.   : origin( aPoint.minimum( aPoint+aSize ) ),
  3977.     corner( aPoint.maximum( aPoint+aSize ) )
  3978.   {
  3979.   }
  3980. inline IRectangle :: IRectangle ( Coord x1,
  3981.                                   Coord y1,
  3982.                                   Coord x2,
  3983.                                   Coord y2 )
  3984.    : origin( IPair( x1, y1 ).minimum( IPair( x2, y2 ) ) ),
  3985.      corner( IPair( x1, y1 ).maximum( IPair( x2, y2 ) ) )
  3986.   {
  3987.   }
  3988. #line 77
  3989. inline IRectangle :: IRectangle ( Coord width,
  3990.                                   Coord height )
  3991.   : origin( IPair( width, height ).minimum( IPair() ) ),
  3992.     corner( IPair( width, height ).maximum( IPair() ) )
  3993.   {
  3994.   }
  3995. inline IRectangle :: IRectangle ( const IPair &aPair )
  3996.   : origin( aPair.minimum( IPair() ) ),
  3997.     corner( aPair.maximum( IPair() ) )
  3998.   {
  3999.   }
  4000.  
  4001. inline IRectangle::Coord IRectangle :: minY ( ) const
  4002.   {
  4003.   return origin.y();
  4004.   }
  4005. inline IRectangle::Coord IRectangle :: bottom ( ) const
  4006.   {
  4007.   return minY();
  4008.   }
  4009. inline IRectangle::Coord IRectangle :: height ( ) const
  4010.   {
  4011.   return corner.y() - origin.y();
  4012.   }
  4013. inline IRectangle::Coord IRectangle :: minX ( ) const
  4014.   {
  4015.   return origin.x();
  4016.   }
  4017. inline IRectangle::Coord IRectangle :: left ( ) const
  4018.   {
  4019.   return minX();
  4020.   }
  4021. inline IRectangle::Coord IRectangle :: maxX ( ) const
  4022.   {
  4023.   return corner.x();
  4024.   }
  4025. inline IRectangle::Coord IRectangle :: right ( ) const
  4026.   {
  4027.   return maxX();
  4028.   }
  4029. inline IRectangle::Coord IRectangle :: maxY ( ) const
  4030.   {
  4031.   return corner.y();
  4032.   }
  4033. inline IRectangle::Coord IRectangle :: top ( ) const
  4034.   {
  4035.   return maxY();
  4036.   }
  4037. inline IRectangle::Coord IRectangle :: width ( ) const
  4038.   {
  4039.   return corner.x() - origin.x();
  4040.   }
  4041. inline IPoint IRectangle :: centerXMinY ( ) const
  4042.   {
  4043.   return IPoint( ( maxX() + minX() ) / 2,
  4044.                    minY() );
  4045.   }
  4046. inline IPoint IRectangle :: bottomCenter ( ) const
  4047.   {
  4048.   return centerXMinY( );
  4049.   }
  4050. inline IPoint IRectangle :: minXMinY ( ) const
  4051.   {
  4052.   return origin;
  4053.   }
  4054. inline IPoint IRectangle :: bottomLeft ( ) const
  4055.   {
  4056.   return minXMinY();
  4057.   }
  4058. inline IPoint IRectangle :: maxXMinY ( ) const
  4059.   {
  4060.   return IPoint( maxX(),
  4061.                  minY() );
  4062.   }
  4063. inline IPoint IRectangle :: bottomRight ( ) const
  4064.   {
  4065.   return maxXMinY( );
  4066.   }
  4067. inline IPoint IRectangle :: centerXCenterY ( ) const
  4068.   {
  4069.   return ( origin + corner ) / 2;
  4070.   }
  4071. inline IPoint IRectangle :: center ( ) const
  4072.   {
  4073.   return centerXCenterY( );
  4074.   }
  4075. inline IPoint IRectangle :: minXCenterY ( ) const
  4076.   {
  4077.   return IPoint( minX(),
  4078.                  ( minY() + maxY() ) / 2 );
  4079.   }
  4080. inline IPoint IRectangle :: leftCenter ( ) const
  4081.   {
  4082.   return minXCenterY( );
  4083.   }
  4084. inline IPoint IRectangle :: maxXCenterY ( ) const
  4085.   {
  4086.   return IPoint( maxX(),
  4087.                  ( minY() + maxY() ) / 2 );
  4088.   }
  4089. inline IPoint IRectangle :: rightCenter ( ) const
  4090.   {
  4091.   return maxXCenterY();
  4092.   }
  4093. inline IPoint IRectangle :: centerXMaxY ( ) const
  4094.   {
  4095.   return IPoint( ( minX() + maxX() ) / 2,
  4096.                  maxY() );
  4097.   }
  4098. inline IPoint IRectangle :: topCenter ( ) const
  4099.   {
  4100.   return centerXMaxY();
  4101.   }
  4102. inline IPoint IRectangle :: minXMaxY ( ) const
  4103.   {
  4104.   return IPoint( minX(),
  4105.                  maxY() );
  4106.   }
  4107. inline IPoint IRectangle :: topLeft ( ) const
  4108.   {
  4109.   return minXMaxY( );
  4110.   }
  4111. inline IPoint IRectangle :: maxXMaxY ( ) const
  4112.   {
  4113.   return corner;
  4114.   }
  4115. inline IPoint IRectangle :: topRight ( ) const
  4116.   {
  4117.   return maxXMaxY( );
  4118.   }
  4119. inline ISize IRectangle :: size ( ) const
  4120.   {
  4121.   return corner - origin;
  4122.   }
  4123. inline IRectangle::Coord IRectangle :: area ( ) const
  4124.   {
  4125.   return height() * width();
  4126.   }
  4127.  
  4128. inline IBase::Boolean IRectangle :: operator == ( const IRectangle &aRect ) const
  4129.   {
  4130.   return ( origin == aRect.origin
  4131.            &&
  4132.            corner == aRect.corner );
  4133.   }
  4134. inline IBase::Boolean IRectangle :: operator != ( const IRectangle& aRect ) const
  4135.   {
  4136.   return !( *this == aRect );
  4137.   }
  4138.  
  4139. inline IRectangle &IRectangle :: validate ( )
  4140.   {
  4141.   if ( (corner.coord1() < origin.coord1()) ||
  4142.        (corner.coord2() < origin.coord2()) )
  4143.   {
  4144.     origin = corner = IPoint( 0, 0 );
  4145.   }
  4146.   return *this;
  4147.   }
  4148.  
  4149. inline IRectangle &IRectangle :: operator &= ( const IRectangle &aRect )
  4150.   {
  4151.   origin = origin.maximum( aRect.origin );
  4152.   corner = corner.minimum( aRect.corner );
  4153.   return validate();
  4154.   }
  4155. inline IRectangle IRectangle :: operator &  ( const IRectangle &aRect ) const
  4156.   {
  4157.   IRectangle result( *this );
  4158.   return ( result &= aRect );
  4159.   }
  4160. inline IRectangle &IRectangle :: operator |= ( const IRectangle &aRect )
  4161.   {
  4162.   origin = origin.minimum( aRect.origin ),
  4163.   corner = corner.maximum( aRect.corner );
  4164.   return *this;
  4165.   }
  4166. inline IRectangle IRectangle :: operator |  ( const IRectangle &aRect ) const
  4167.   {
  4168.   IRectangle result( *this );
  4169.   return result |= aRect;
  4170.   }
  4171.  
  4172. inline IRectangle &IRectangle :: moveBy ( const IPair &aPair )
  4173.   {
  4174.   origin += aPair;
  4175.   corner += aPair;
  4176.   return *this;
  4177.   }
  4178. inline IRectangle &IRectangle :: centerAt ( const IPoint &aPoint )
  4179.   {
  4180.   return moveBy( aPoint - centerXCenterY() );
  4181.   }
  4182. inline IRectangle IRectangle :: centeredAt ( const IPoint &aPoint ) const
  4183.   {
  4184.   IRectangle result( *this );
  4185.   return result.centerAt( aPoint );
  4186.   }
  4187. inline IRectangle &IRectangle :: expandBy ( const IPair &aPair )
  4188.   {
  4189.   origin -= aPair;
  4190.   corner += aPair;
  4191.   return validate();
  4192.   }
  4193. inline IRectangle &IRectangle :: expandBy ( Coord coord )
  4194.   {
  4195.   origin -= coord,
  4196.   corner += coord;
  4197.   return validate();
  4198.   }
  4199. inline IRectangle IRectangle :: expandedBy ( const IPair &aPair ) const
  4200.   {
  4201.   IRectangle result( *this );
  4202.   return result.expandBy( aPair );
  4203.   }
  4204. inline IRectangle IRectangle :: expandedBy ( Coord coord ) const
  4205.   {
  4206.   IRectangle result( *this );
  4207.   return result.expandBy( coord );
  4208.   }
  4209. inline IRectangle IRectangle :: movedBy ( const IPair &aPair ) const
  4210.   {
  4211.   IRectangle result( *this );
  4212.   return result.moveBy( aPair );
  4213.   }
  4214. inline IRectangle &IRectangle :: moveTo ( const IPoint &aPoint )
  4215.   {
  4216.   return moveBy( aPoint - origin );
  4217.   }
  4218. inline IRectangle IRectangle :: movedTo ( const IPoint &aPoint ) const
  4219.   {
  4220.   IRectangle result( *this );
  4221.   return result.moveTo( aPoint );
  4222.   }
  4223. inline IRectangle &IRectangle :: scaleBy ( const IPair &aPair )
  4224.   {
  4225.   origin *= aPair;
  4226.   corner *= aPair;
  4227.   return *this;
  4228.   }
  4229. inline IRectangle &IRectangle :: scaleBy ( Coord coord )
  4230.   {
  4231.   origin *= coord,
  4232.   corner *= coord;
  4233.   return *this;
  4234.   }
  4235. inline IRectangle &IRectangle :: scaleBy ( double amt )
  4236.   {
  4237.   origin *= amt;
  4238.   corner *= amt;
  4239.   return *this;
  4240.   }
  4241. inline IRectangle &IRectangle :: scaleBy ( double xamt, double yamt )
  4242.   {
  4243.   origin.scaleBy( xamt, yamt );
  4244.   corner.scaleBy( xamt, yamt );
  4245.   return *this;
  4246.   }
  4247. inline IRectangle IRectangle :: scaledBy ( const IPair &aPair ) const
  4248.   {
  4249.   IRectangle result( *this );
  4250.   return result.scaleBy( aPair );
  4251.   }
  4252. inline IRectangle IRectangle :: scaledBy ( Coord coord ) const
  4253.   {
  4254.   IRectangle result( *this );
  4255.   return result.scaleBy( coord );
  4256.   }
  4257. inline IRectangle IRectangle :: scaledBy ( double amt ) const
  4258.   {
  4259.   IRectangle result( *this );
  4260.   return result.scaleBy( amt );
  4261.   }
  4262. inline IRectangle IRectangle :: scaledBy ( double xamt, double yamt ) const
  4263.   {
  4264.   IRectangle result( *this );
  4265.   return result.scaleBy( xamt, yamt );
  4266.   }
  4267. inline IRectangle &IRectangle :: shrinkBy ( const IPair &aPair )
  4268.   {
  4269.   return expandBy( -aPair );
  4270.   }
  4271. inline IRectangle &IRectangle :: shrinkBy ( Coord coord )
  4272.   {
  4273.   return expandBy( -coord );
  4274.   }
  4275. inline IRectangle IRectangle :: shrunkBy ( const IPair &aPair ) const
  4276.   {
  4277.   return expandedBy( -aPair );
  4278.   }
  4279. inline IRectangle IRectangle :: shrunkBy ( Coord coord ) const
  4280.   {
  4281.   return expandedBy( -coord );
  4282.   }
  4283. inline IRectangle &IRectangle :: sizeTo ( const IPair &aPair )
  4284.   {
  4285.   corner = origin + aPair;
  4286.   return *this;
  4287.   }
  4288. inline IRectangle IRectangle :: sizedTo ( const IPair &aPair ) const
  4289.   {
  4290.   IRectangle result( *this );
  4291.   return result.sizeTo( aPair );
  4292.   }
  4293. inline IRectangle &IRectangle :: sizeBy ( Coord factor )
  4294.   {
  4295.   IPoint save( minXMinY() );
  4296.   moveTo( IPoint(0,0) ).scaleBy( factor ).moveTo( save );
  4297.   return *this;
  4298.   }
  4299. inline IRectangle &IRectangle :: sizeBy ( const IPair &aPair )
  4300.   {
  4301.   IPoint save( minXMinY() );
  4302.   moveTo( IPoint(0,0) ).scaleBy( aPair ).moveTo( save );
  4303.   return *this;
  4304.   }
  4305. inline IRectangle &IRectangle :: sizeBy ( double factor )
  4306.   {
  4307.   IPoint save( minXMinY() );
  4308.   moveTo( IPoint(0,0) ).scaleBy( factor ).moveTo( save );
  4309.   return *this;
  4310.   }
  4311. inline IRectangle &IRectangle :: sizeBy ( double xfact, double yfact )
  4312.   {
  4313.   IPoint save( minXMinY() );
  4314.   moveTo( IPoint(0,0) ).scaleBy( xfact, yfact ).moveTo( save );
  4315.   return *this;
  4316.   }
  4317. inline IRectangle IRectangle :: sizedBy ( Coord factor ) const
  4318.   {
  4319.   IRectangle result( *this );
  4320.   return result.sizeBy( factor );
  4321.   }
  4322. inline IRectangle IRectangle :: sizedBy ( const IPair &aPair ) const
  4323.   {
  4324.   IRectangle result( *this );
  4325.   return result.sizeBy( aPair );
  4326.   }
  4327. inline IRectangle IRectangle :: sizedBy ( double factor ) const
  4328.   {
  4329.   IRectangle result( *this );
  4330.   return result.sizeBy( factor );
  4331.   }
  4332. inline IRectangle IRectangle :: sizedBy ( double xfact, double yfact ) const
  4333.   {
  4334.   IRectangle result( *this );
  4335.   return result.sizeBy( xfact, yfact );
  4336.   }
  4337.  
  4338. inline IBase::Boolean IRectangle :: contains ( const IRectangle &aRect ) const
  4339.   {
  4340.   return ( origin <= aRect.origin
  4341.            &&
  4342.            aRect.corner <= corner );
  4343.   }
  4344. inline IBase::Boolean IRectangle :: contains ( const IPoint &aPoint ) const
  4345.   {
  4346.   return ( aPoint >= origin
  4347.            &&
  4348.            aPoint < corner );
  4349.   }
  4350. inline IBase::Boolean IRectangle :: intersects ( const IRectangle &aRect ) const
  4351.   {
  4352.   return ( origin < aRect.corner
  4353.            &&
  4354.            aRect.origin < corner );
  4355.   }
  4356. #line 23 "F:\vacpp\INCLUDE\ireslib.hpp"
  4357. class IString;
  4358. class IDLLModule;
  4359. class ISize;
  4360. class IWindow;
  4361. class IMenu;
  4362. class IResLibPrivateData;
  4363.  
  4364. #pragma pack(4)
  4365.  
  4366. class IResourceLibrary  : public IVBase {
  4367. typedef IVBase
  4368.   Inherited;
  4369. public:
  4370.  
  4371.   IResourceLibrary   ( );
  4372.   IResourceLibrary   ( const IResourceLibrary& resLibrary );
  4373. virtual
  4374.  ~IResourceLibrary   ( );
  4375.  
  4376. IResourceLibrary
  4377.  &operator=           ( const IResourceLibrary& resLibrary );
  4378. #line 46
  4379. virtual IString
  4380.   fileName           ( ) const;
  4381.  
  4382. virtual Boolean
  4383.   isOpen             ( ) const;
  4384.  
  4385. virtual IModuleHandle
  4386.   handle             ( ) const;
  4387. #line 56
  4388. virtual IString
  4389.   asString           ( ) const,
  4390.   asDebugInfo        ( ) const;
  4391. #line 62
  4392. virtual IString
  4393.   loadString      ( unsigned long stringId  ) const,
  4394.   loadMessage     ( unsigned long messageId ) const;
  4395. #line 67
  4396. virtual IMenuHandle
  4397.   loadMenu        ( unsigned long menuId,
  4398.                     IWindow*      menuOwner ) const;
  4399.  
  4400. virtual IWindowHandle
  4401.   loadDialog      ( unsigned long dialogId,
  4402.                     IWindow*      dialogParent,
  4403.                     IWindow*      dialogOwner,
  4404.                     IWinProc*     dialogProcedure,
  4405.                     void*         dialogCreateParameters ) const;
  4406. #line 79
  4407. virtual IAccelTblHandle
  4408.   loadAccelTable  ( unsigned long accelTableId ) const;
  4409.  
  4410. virtual IResourceLibrary
  4411.  &loadHelpTable   ( IWindow*      helpInstance,
  4412.                     unsigned long helpTableId ) const;
  4413.  
  4414. virtual IPointerHandle
  4415.   loadIcon        ( unsigned long iconId,
  4416.                     Boolean       cached = true ) const,
  4417.   loadPointer     ( unsigned long iconId,
  4418.                     Boolean       cached = true ) const;
  4419.  
  4420. virtual IBitmapHandle
  4421.   loadBitmap      ( unsigned long bitmapId,
  4422.                     Boolean       cached = true ) const,
  4423.   loadBitmap      ( unsigned long bitmapId,
  4424.                     const ISize&  bitmapSize,
  4425.                     Boolean       cached = true ) const;
  4426. #line 100
  4427. virtual IString
  4428.   tryToLoadString      ( unsigned long stringId  ) const,
  4429.   tryToLoadMessage     ( unsigned long messageId ) const;
  4430.  
  4431. virtual IPointerHandle
  4432.   tryToLoadIcon        ( unsigned long iconId,
  4433.                          Boolean       cached = true ) const;
  4434.  
  4435. virtual IBitmapHandle
  4436.   tryToLoadBitmap     ( unsigned long bitmapId,
  4437.                         Boolean       cached = true ) const,
  4438.   tryToLoadBitmap     ( unsigned long bitmapId,
  4439.                         const ISize&  bitmapSize,
  4440.                         Boolean       cached = true ) const;
  4441.  
  4442. private:
  4443.  
  4444. char
  4445.  *loadText       ( Boolean       isString,
  4446.                    unsigned long stringID,
  4447.                    char*         buffer = 0,
  4448.                    unsigned long length = 0,
  4449.                    Boolean       throwException = true ) const;
  4450. #line 125
  4451. static unsigned long
  4452.   addRef          ( const IPointerHandle& pointerHandle ),
  4453.   addRef          ( const IBitmapHandle&  bitmapHandle ),
  4454.   removeRef       ( const IPointerHandle& pointerHandle ),
  4455.   removeRef       ( const IBitmapHandle&  bitmapHandle );
  4456.  
  4457. static unsigned long
  4458.   systemPointer ( unsigned long systemPointerId,
  4459.                   Boolean       fCopy = false,
  4460.                   Boolean       fIconApi = false );
  4461. static unsigned long
  4462.   systemBitmap  ( unsigned long systemBitmapId);
  4463.  
  4464. IResLibPrivateData
  4465.  *ppd;
  4466.  
  4467. IModuleHandle
  4468.   hInstance;
  4469.  
  4470. friend class IPointerHandle;
  4471. friend class IBitmapHandle;
  4472. friend class ISystemPointerHandle;
  4473. friend class ISystemBitmapHandle;
  4474. friend class ICnrObjPrivateData;
  4475. };   
  4476. #line 152
  4477. class IDynamicLinkLibrary : public IResourceLibrary
  4478. {
  4479. typedef IResourceLibrary
  4480.   Inherited;
  4481. public:
  4482.  
  4483.   IDynamicLinkLibrary   ( const char*                resourceFileName );
  4484.   IDynamicLinkLibrary   ( const IModuleHandle&       moduleHandle );
  4485.   IDynamicLinkLibrary   ( const IDynamicLinkLibrary& dllLibrary );
  4486.  
  4487. virtual
  4488.   ~IDynamicLinkLibrary  ( );
  4489.  
  4490. IDynamicLinkLibrary
  4491.  &operator=             ( const IDynamicLinkLibrary& dllLibrary );
  4492. #line 169
  4493. virtual IDynamicLinkLibrary
  4494.  &open                ( ),
  4495.  &close               ( );
  4496. #line 174
  4497. void
  4498.  *procAddress       ( const char*   procedureName ) const,
  4499.  *procAddress       ( unsigned long procedureOrdinal ) const;
  4500.  
  4501. Boolean
  4502.   isEntryPoint32Bit ( const char*   procedureName ) const,
  4503.   isEntryPoint32Bit ( unsigned long procedureOrdinal ) const;
  4504. #line 183
  4505. virtual Boolean
  4506.   isOpen           ( ) const;
  4507.  
  4508. virtual IString
  4509.   fileName         ( ) const;
  4510.  
  4511. virtual IModuleHandle
  4512.   handle           ( ) const;
  4513. #line 193
  4514. virtual IString
  4515.   asString         ( ) const,
  4516.   asDebugInfo      ( ) const;
  4517. #line 198
  4518. private:
  4519.  
  4520. static unsigned long
  4521.   addRef          ( const IModuleHandle& moduleHandle ),
  4522.   removeRef       ( const IModuleHandle& moduleHandle );
  4523.  
  4524. IDLLModule
  4525.  *pmodClResource;
  4526. };
  4527. #line 209
  4528. class IResourceId  : public IBase
  4529. {
  4530. typedef IBase
  4531.   Inherited;
  4532. public:
  4533.  
  4534.   IResourceId      ( unsigned long              resourceId,
  4535.                      const IResourceLibrary&    resourceLibrary );
  4536.   IResourceId      ( unsigned long              resourceId,
  4537.                      const IDynamicLinkLibrary& dllLibrary );
  4538.  
  4539.   IResourceId      ( unsigned long              resourceId );
  4540. #line 223
  4541. unsigned long
  4542.   id                    ( ) const;
  4543.  
  4544. operator unsigned long  ( ) const;
  4545.  
  4546. const IResourceLibrary
  4547.  &resourceLibrary       ( ) const;
  4548. #line 232
  4549. IString
  4550.   asString         ( ) const,
  4551.   asDebugInfo      ( ) const;
  4552. #line 237
  4553. private:
  4554.  
  4555. IResourceId
  4556.   &operator=    ( const IResourceId& resourceId );
  4557. #line 243
  4558. unsigned long
  4559.   ulClId;
  4560.  
  4561. const IResourceLibrary
  4562.  &reslibCl;
  4563.  
  4564. };  
  4565.  
  4566. #pragma pack()
  4567. #line 22 "F:\vacpp\INCLUDE\iapp.hpp"
  4568. struct pib_s;
  4569. class IResourceLibrary;
  4570. class IString;
  4571. class ICurrentApplication;
  4572. class ICurrentApplicationData;
  4573.  
  4574. #pragma pack(4)
  4575. #line 31
  4576. class IApplication : public IVBase {
  4577. typedef IVBase
  4578.   Inherited;
  4579. public:
  4580.  
  4581. virtual IString
  4582.   asString    ( ) const,
  4583.   asDebugInfo ( ) const;
  4584. #line 41
  4585. static IProcessId
  4586.   currentPID  ( );
  4587.  
  4588. virtual IProcessId
  4589.   id          ( ) const;
  4590.  
  4591. static ICurrentApplication
  4592.  ¤t     ( );
  4593. #line 51
  4594. enum PriorityClass {
  4595.   noChange,
  4596.   idleTime,
  4597.   regular,
  4598.   timeCritical,
  4599.   foregroundServer
  4600. };
  4601.  
  4602. virtual IApplication
  4603.  &adjustPriority ( long          adjustment,
  4604.                    Boolean       setDescendents = false ),
  4605.  &setPriority    ( PriorityClass priorityClass,
  4606.                    long          priorityLevel = 0,
  4607.                    Boolean       setDescendents = false );
  4608.  
  4609. protected:
  4610.  
  4611.   IApplication ( const IProcessId& id );
  4612. virtual
  4613.  ~IApplication ( );
  4614. #line 73
  4615. virtual IApplication
  4616.   &setId ( const IProcessId& id );
  4617.  
  4618. private:
  4619.  
  4620. static ICurrentApplication
  4621.  *pCurrent;
  4622. IProcessId
  4623.   pid;
  4624. };  
  4625. #line 85
  4626. class ICurrentApplication : public IApplication {
  4627. typedef IApplication
  4628.   Inherited;
  4629. public:
  4630.  
  4631. virtual int
  4632.   argc    ( ) const;
  4633.  
  4634. virtual IString
  4635.   argv    ( int argumentNumber ) const;
  4636.  
  4637. virtual ICurrentApplication
  4638.  &setArgs ( int               argc,
  4639.             const char* const argv[] );
  4640. #line 101
  4641. virtual IResourceLibrary
  4642.  &userResourceLibrary    ( ) const,
  4643.  &resourceLibrary        ( ) const;
  4644.  
  4645. virtual ICurrentApplication
  4646.  &setUserResourceLibrary ( const char* resLibName ),
  4647.  &setResourceLibrary     ( const char* resLibName );
  4648. #line 110
  4649. virtual ICurrentApplication
  4650.  &run  ( ),
  4651.  &exit ( );
  4652. #line 115
  4653. virtual IString
  4654.   asDebugInfo ( ) const;
  4655.  
  4656. protected:
  4657.  
  4658.   ICurrentApplication ( );
  4659. virtual
  4660.  ~ICurrentApplication ( );
  4661. #line 125
  4662. struct pib_s
  4663.  &pib ( );
  4664.  
  4665. private:
  4666.  
  4667. friend class IApplication;
  4668.  
  4669. IResourceLibrary
  4670.  *icluiLib,
  4671.  *userLib;
  4672.  
  4673. Boolean
  4674.   exeResource;
  4675.  
  4676. int
  4677.   argCount;
  4678.  
  4679. IString
  4680.  *argValue;
  4681.  
  4682. struct pib_s
  4683.  *pPIB;
  4684.  
  4685. ICurrentApplicationData
  4686.  *pCurrentApplicationData;
  4687.  
  4688. };  
  4689.  
  4690. #pragma pack()
  4691. #line 30 "F:\vacpp\INCLUDE\ireslib.inl"
  4692. inline IResourceId :: IResourceId(unsigned long resourceId, const IResourceLibrary& resourceLibrary)
  4693.                      : reslibCl(resourceLibrary), ulClId(resourceId)
  4694.  
  4695. { }
  4696.  
  4697. inline IResourceId :: IResourceId(unsigned long resourceId, const IDynamicLinkLibrary& dllLibrary)
  4698.                      : reslibCl(dllLibrary), ulClId(resourceId)
  4699.  
  4700. { }
  4701.  
  4702. inline IResourceId :: IResourceId(unsigned long resourceId)
  4703.                        : reslibCl ( IApplication::current().userResourceLibrary() ),
  4704.                          ulClId   ( resourceId )
  4705.  
  4706. { }
  4707.  
  4708. inline const IResourceLibrary& IResourceId::resourceLibrary() const
  4709. { return reslibCl; }
  4710.  
  4711. inline IResourceId::operator unsigned long( )   const
  4712. { return this->ulClId; }
  4713.  
  4714. inline unsigned long IResourceId::id( )   const
  4715. { return this->ulClId; }
  4716. #line 25 "F:\vacpp\INCLUDE\iframe.hpp"
  4717. class IColor;
  4718. class IFrameExtension;
  4719. class IFrameExtensions;
  4720. class IFrameHandler;
  4721. class IFrameWindowData;
  4722. class IFrameWindowNotifyHandler;
  4723. class IToolBarList;
  4724.  
  4725. #pragma pack(4)
  4726.  
  4727. class IFrameWindow : public IWindow {
  4728. typedef IWindow
  4729.   Inherited;
  4730. public:
  4731. class Style;
  4732. enum FrameSource {
  4733.   dialogResource,
  4734.   noDialogResource,
  4735.   tryDialogResource
  4736.   };
  4737.  
  4738.   IFrameWindow ( unsigned long id = 1000,
  4739.                  FrameSource   source = tryDialogResource );
  4740.  
  4741.   IFrameWindow ( const IResourceId& resId,
  4742.                  IWindow*           owner = 0,
  4743.                  FrameSource        source = tryDialogResource );
  4744.  
  4745.   IFrameWindow ( const IResourceId& resId,
  4746.                  IWindow*           parent,
  4747.                  IWindow*           owner,
  4748.                  FrameSource        source = tryDialogResource );
  4749.  
  4750.   IFrameWindow ( const IWindowHandle& hwnd );
  4751.  
  4752.   IFrameWindow ( const IResourceId&         resId,
  4753.                  const IFrameWindow::Style& style );
  4754.  
  4755.   IFrameWindow ( const IFrameWindow::Style& style,
  4756.                  const IResourceId&         resId = 1000 );
  4757.  
  4758.   IFrameWindow ( const char*                title,
  4759.                  const IResourceId&         resId = 1000,
  4760.                  const IFrameWindow::Style& style = defaultStyle() );
  4761.  
  4762.   IFrameWindow ( const IResourceId&         resId,
  4763.                  IWindow*                   parent,
  4764.                  IWindow*                   owner ,
  4765.                  const IRectangle&          initRect,
  4766.                  const IFrameWindow::Style& style = defaultStyle(),
  4767.                  const char*                title = 0 );
  4768.  
  4769. virtual
  4770.  ~IFrameWindow ( );
  4771. #line 81
  4772. class Style : public IBitFlag{friend class IFrameWindow;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs );protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  4773.  
  4774. static const Style
  4775.   classDefaultStyle,
  4776.   accelerator,
  4777.   alignNoAdjust,
  4778.   animated,
  4779.   appDBCSStatus,
  4780.   border,
  4781.   dialogBackground,
  4782.   dialogBorder,
  4783.   hideButton,
  4784.   horizontalScroll,
  4785.   maximizeButton,
  4786.   maximized,
  4787.   menuBar,
  4788.   minimizeButton,
  4789.   minimized,
  4790.   minimizedIcon,
  4791.   noMoveWithOwner,
  4792.   shellPosition,
  4793.   sizingBorder,
  4794.   systemMenu,
  4795.   systemModal,
  4796.   titleBar,
  4797.   verticalScroll,
  4798.   windowList;
  4799.  
  4800. static Style
  4801.   defaultStyle      ( );
  4802.  
  4803. static void
  4804.   setDefaultStyle   ( const Style&    style );
  4805.  
  4806. virtual unsigned long
  4807.   convertToGUIStyle ( const IBitFlag& style,
  4808.                       Boolean         extendedOnly = false ) const;
  4809. #line 120
  4810. virtual IFrameWindow
  4811.  &close          ( ),
  4812.  &maximize       ( ),
  4813.  &restore        ( ),
  4814.  &setRestoreRect ( const IRectangle& rect ),
  4815.  &minimize       ( );
  4816.  
  4817. virtual IRectangle
  4818.   maximizeRect  ( ) const,
  4819.   minimizeRect  ( ) const,
  4820.   restoreRect   ( ) const;
  4821.  
  4822. static IRectangle
  4823.   nextShellRect ( );
  4824. #line 136
  4825. virtual IFrameWindow
  4826.  &moveSizeToClient ( const IRectangle& clientRect );
  4827.  
  4828. virtual IRectangle
  4829.   clientRectFor    ( const IRectangle& frameRect ) const,
  4830.   frameRectFor     ( const IRectangle& clientRect ) const;
  4831. #line 144
  4832. unsigned long
  4833.   borderWidth     ( ) const,
  4834.   borderHeight    ( ) const;
  4835.  
  4836. ISize
  4837.   borderSize      ( ) const;
  4838.  
  4839. IFrameWindow
  4840.  &setBorderWidth  ( unsigned long cx ),
  4841.  &setBorderHeight ( unsigned long cy ),
  4842.  &setBorderSize   ( const ISize&  size ),
  4843.  &setBorderSize   ( unsigned long cxcy ),
  4844.  &setBorderSize   ( unsigned long cx,
  4845.                     unsigned long cy );
  4846. #line 160
  4847. virtual unsigned long
  4848.   showModally ( ),
  4849.   result      ( ) const;
  4850.  
  4851. virtual IFrameWindow
  4852.  &dismiss     ( unsigned long result = 0 ),
  4853.  &setResult   ( unsigned long result ),
  4854.  
  4855.  ¬ifyOwner ( unsigned long         id,
  4856.                 ICommandEvent::Source source = ICommandEvent::unknown,
  4857.                 Boolean               pointerDevice = false );
  4858. #line 173
  4859. virtual IPointerHandle
  4860.   icon    ( ) const;
  4861.  
  4862. virtual IFrameWindow
  4863.  &setIcon ( const IPointerHandle& icon ),
  4864.  &setIcon ( const IResourceId&    iconResId ),
  4865.  &setIcon ( unsigned long         iconResId );
  4866. #line 182
  4867. virtual IPointerHandle
  4868.   mousePointer    ( ) const;
  4869.  
  4870. virtual IFrameWindow
  4871.  &setMousePointer ( const IPointerHandle& mousePointer );
  4872. #line 189
  4873. virtual IColor
  4874.   backgroundColor              ( ) const,
  4875.   disabledBackgroundColor      ( ) const;
  4876.  
  4877. virtual IFrameWindow
  4878.  &resetBackgroundColor         ( ),
  4879.  &resetDisabledBackgroundColor ( );
  4880.  
  4881. Boolean
  4882.   usesDialogBackground         ( ) const;
  4883. #line 201
  4884. virtual IWindowHandle
  4885.   clientHandle ( ) const;
  4886.  
  4887. virtual IWindow
  4888.  *client       ( ) const;
  4889.  
  4890. virtual IFrameWindow
  4891.  &setClient    ( IWindow* newClient );
  4892. #line 211
  4893. enum Location {
  4894.   leftOfTitleBar,
  4895.   rightOfTitleBar,
  4896.   leftOfMenuBar,
  4897.   rightOfMenuBar,
  4898.   leftOfClient,
  4899.   rightOfClient,
  4900.   aboveClient,
  4901.   belowClient
  4902.   };
  4903.  
  4904. enum SeparatorType {
  4905.   none,
  4906.   thinLine,
  4907.   thickLine
  4908.   };
  4909.  
  4910. virtual IFrameWindow
  4911.  &addExtension     ( IWindow*      newExtension,
  4912.                      Location      location,
  4913.                      unsigned long widthOrHeight,
  4914.                      SeparatorType separator = thinLine ),
  4915.  &addExtension     ( IWindow*      newExtension,
  4916.                      Location      location,
  4917.                      int           widthOrHeight,
  4918.                      SeparatorType separator = thinLine ),
  4919.  &addExtension     ( IWindow*      newExtension,
  4920.                      Location      location,
  4921.                      double        percentage,
  4922.                      SeparatorType separator = thinLine ),
  4923.  &addExtension     ( IWindow*      newExtension,
  4924.                      Location      location,
  4925.                      SeparatorType separator = thinLine ),
  4926.  
  4927.  &removeExtension  ( IWindow*      extension,
  4928.                      Boolean       updateDisplay = true ),
  4929.  
  4930.  &setExtensionSize ( IWindow*      extension,
  4931.                      unsigned long widthOrHeight ),
  4932.  &setExtensionSize ( IWindow*      extension,
  4933.                      int           widthOrHeight ),
  4934.  &setExtensionSize ( IWindow*      extension,
  4935.                      double        widthOrHeight ),
  4936.  &useExtensionMinimumSize ( IWindow* extension ),
  4937.  
  4938.  &update           ( );
  4939.  
  4940. virtual Boolean
  4941.   isAnExtension    ( const IWindow* window ) const;
  4942. #line 262
  4943. virtual IFrameWindow
  4944.  &show ( Boolean showWindow = true );
  4945. #line 266
  4946. virtual IFrameWindow
  4947.  &setDestroyOnClose  ( Boolean destroy = true );
  4948.  
  4949. Boolean
  4950.   willDestroyOnClose ( ) const;
  4951. #line 273
  4952. Boolean
  4953.   isFlashing  ( ) const,
  4954.   isMaximized ( ) const,
  4955.   isMinimized ( ) const,
  4956.   isModal     ( ) const;
  4957. #line 280
  4958. virtual IFrameWindow
  4959.  &addToWindowList      ( ),
  4960.  &removeFromWindowList ( );
  4961. #line 285
  4962. virtual IWindowHandle
  4963.   handleFor ( const Style& standardControl ) const;
  4964. #line 289
  4965. virtual IFrameWindow
  4966.  &beginFlashing ( ),
  4967.  &endFlashing   ( );
  4968. #line 294
  4969. virtual IFrameWindow
  4970.  &shareParentDBCSStatus ( );
  4971. #line 298
  4972. static void
  4973.   setDefaultOrdering ( IWindow::SiblingOrder ordering );
  4974. static IWindow::SiblingOrder
  4975.   defaultOrdering    ( );
  4976. #line 304
  4977. IFrameWindow
  4978.  &setLayoutDistorted ( unsigned long layoutAttributesOn,
  4979.                        unsigned long layoutAttributesOff );
  4980. #line 309
  4981. static INotificationId const
  4982.   closeId,
  4983.   activateId,
  4984.   deactivateId;
  4985. #line 315
  4986. virtual IFrameWindow
  4987.  &enableNotification ( Boolean enable = true );
  4988. #line 320
  4989. IFrameWindow
  4990.  &setToolBarList ( IToolBarList* toolBarList );
  4991. IToolBarList
  4992.  *toolBarList    ( ) const;
  4993.  
  4994. protected:
  4995.  
  4996. IFrameExtensions
  4997.  *extensions    ( ) const;
  4998.  
  4999. unsigned
  5000.   findExtension ( IWindow* window );
  5001.  
  5002. IFrameWindow
  5003.  &setExtensions ( IFrameExtensions* extensions );
  5004. #line 337
  5005. static const Style
  5006.   deferCreation;
  5007.  
  5008. IFrameWindow
  5009.  &tryToLoadDialog ( const IResourceId& resId,
  5010.                     IWindow*           parent = 0,
  5011.                     IWindow*           owner  = 0,
  5012.                     FrameSource        source = tryDialogResource );
  5013.  
  5014. IFrameWindow
  5015.  &initialize      ( const IResourceId& resId,
  5016.                     const Style&       style,
  5017.                     IWindow*           parent   = 0,
  5018.                     IWindow*           owner    = 0,
  5019.                     const IRectangle&  initRect = nextShellRect(),
  5020.                     const char*        title    = 0 );
  5021. #line 355
  5022. IWindowHandle
  5023.   create ( unsigned long         id,
  5024.            const char*           title,
  5025.            unsigned long         style,
  5026.            const char*           windowClass,
  5027.            const IWindowHandle&  parent,
  5028.            const IWindowHandle&  owner,
  5029.            const IRectangle&     initRect,
  5030.            const void*           ctlData,
  5031.            const void*           presParams,
  5032.            IWindow::SiblingOrder ordering = defaultOrdering() );
  5033.  
  5034. IFrameWindow
  5035.  &start  ( const IWindowHandle& hwnd );
  5036.  
  5037. IFrameWindow
  5038.  &addDefaultHandler    ( ),
  5039.  &removeDefaultHandler ( );
  5040. #line 375
  5041. private:
  5042.  
  5043.   IFrameWindow ( const IFrameWindow& frame );
  5044. IFrameWindow
  5045.  &operator=    ( const IFrameWindow& frame );
  5046. #line 382
  5047. friend class IFrameHandler;
  5048. friend class IFrameWindowNotifyHandler;
  5049. friend class IMenuBar;
  5050.  
  5051. IFrameWindow
  5052.  &addExtension ( IFrameExtension* extension );
  5053.  
  5054. static const Style
  5055.   styleBits;
  5056. static Style
  5057.   currentDefault;
  5058.  
  5059. static IWindow::SiblingOrder
  5060.   siblingCreateOrder;
  5061.  
  5062. IFrameWindowData
  5063.  *fFrameWindowData;
  5064. #line 401
  5065. public:
  5066.  
  5067. enum ColorArea {
  5068.   background,
  5069.   foreground,
  5070.   shadow,
  5071.   disableBackground,
  5072.   activeBorder,
  5073.   inactiveBorder,
  5074.   frameBorder
  5075.   };
  5076.  
  5077. IFrameWindow
  5078.  &setColor      ( ColorArea     value,
  5079.                   const IColor& color );
  5080. IColor
  5081.   color         ( ColorArea     value ) const;
  5082. virtual Boolean
  5083.   isAnExtension ( IWindow*      window );
  5084.  
  5085. protected:
  5086. static unsigned long
  5087.   flagsFrom ( const Style& style ),
  5088.   styleFrom ( const Style& style );
  5089.  
  5090. };  
  5091.  
  5092. inline IFrameWindow::Style operator | ( const IFrameWindow::Style &lhs, const IFrameWindow::Style &rhs ){ IFrameWindow::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline IFrameWindow::Style operator & ( const IFrameWindow::Style &lhs, const IFrameWindow::Style::NegatedStyle &rhs ){ IFrameWindow::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IFrameWindow::Style::NegatedStyle operator & ( const IFrameWindow::Style::NegatedStyle &lhs, const IFrameWindow::Style::NegatedStyle &rhs ){ IFrameWindow::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IFrameWindow::Style operator & ( const IFrameWindow::Style::NegatedStyle &lhs, const IFrameWindow::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const IFrameWindow::Style &lhs, const IFrameWindow::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const IFrameWindow::Style &lhs, const IFrameWindow::Style &rhs );
  5093.  
  5094. #pragma pack()
  5095. #line 20 "F:\vacpp\INCLUDE\icontrol.hpp"
  5096. class IControlData;
  5097.  
  5098. #pragma pack(4)
  5099.  
  5100. class IControl : public IWindow  {
  5101. typedef IWindow
  5102.   Inherited;
  5103. public:
  5104.  
  5105. virtual
  5106.   ~IControl();
  5107. #line 33
  5108. class Style : public IBitFlag{friend class IControl;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs );protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  5109. static const Style
  5110.   group,
  5111.   tabStop;
  5112. #line 39
  5113. virtual IControl
  5114.  &enableGroup    ( Boolean enable = true ),
  5115.  &disableGroup   ( );
  5116. virtual Boolean
  5117.   isGroup        ( ) const;
  5118. virtual IControl
  5119.  &enableTabStop  ( Boolean enable = true ),
  5120.  &disableTabStop ( );
  5121. virtual Boolean
  5122.   isTabStop      ( ) const;
  5123.  
  5124. protected:
  5125.  
  5126.   IControl();
  5127.  
  5128. private:
  5129.  
  5130.   IControl       ( const IControl& );
  5131. IControl
  5132.  &operator=      ( const IControl& );
  5133. #line 61
  5134. IControlData
  5135.  *fControlData;
  5136. };  
  5137. inline IControl::Style operator | ( const IControl::Style &lhs, const IControl::Style &rhs ){ IControl::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline IControl::Style operator & ( const IControl::Style &lhs, const IControl::Style::NegatedStyle &rhs ){ IControl::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IControl::Style::NegatedStyle operator & ( const IControl::Style::NegatedStyle &lhs, const IControl::Style::NegatedStyle &rhs ){ IControl::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IControl::Style operator & ( const IControl::Style::NegatedStyle &lhs, const IControl::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const IControl::Style &lhs, const IControl::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const IControl::Style &lhs, const IControl::Style &rhs );  
  5138.  
  5139. #pragma pack()
  5140. #line 23 "F:\vacpp\INCLUDE\icanvas.hpp"
  5141. class ICanvasHandler;
  5142. class IColor;
  5143. class IWindowPosBuffer;
  5144. class ICanvasData;
  5145.  
  5146. #pragma pack(4)
  5147.  
  5148. class ICanvas : public IControl {
  5149. typedef IControl
  5150.   Inherited;
  5151. public:
  5152. class Style;
  5153. #line 37
  5154.   ICanvas ( unsigned long     windowIdentifier,
  5155.             IWindow*          parent,
  5156.             IWindow*          owner,
  5157.             const IRectangle& initial = IRectangle(),
  5158.             const Style&      style = defaultStyle() );
  5159. virtual
  5160.  ~ICanvas ( );
  5161. #line 46
  5162. class Style : public IBitFlag{friend class ICanvas;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs );protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  5163. static const Style
  5164.   classDefaultStyle;
  5165. static Style
  5166.   defaultStyle      ( );
  5167. static void
  5168.   setDefaultStyle   ( const Style&    style );
  5169.  
  5170. virtual unsigned long
  5171.   convertToGUIStyle ( const IBitFlag& style,
  5172.                       Boolean         extendedOnly = false ) const;
  5173. #line 59
  5174. virtual IColor
  5175.   backgroundColor ( ) const;
  5176. #line 63
  5177. virtual Boolean
  5178.   isTabStop               ( ) const;
  5179. IWindowHandle
  5180.   origDefaultButtonHandle ( ) const;
  5181. virtual IWindowHandle
  5182.   defaultPushButton       ( ) const,
  5183.   matchForMnemonic        ( unsigned short character ) const;
  5184. #line 72
  5185. virtual ICanvas
  5186.  &setLayoutDistorted ( unsigned long layoutAttributesOn,
  5187.                        unsigned long layoutAttributesOff );
  5188.  
  5189. protected:
  5190.  
  5191.   ICanvas ( );
  5192. #line 81
  5193. virtual ICanvas
  5194.  &layout              ( );
  5195. ISize
  5196.   layoutSize          ( ) const;
  5197. ICanvas
  5198.  &setLayoutSize       ( const ISize& size );
  5199. virtual IWindowPosBuffer
  5200.   fixupChildren       ( );
  5201. Boolean
  5202.   areChildrenReversed ( ) const;
  5203. virtual ISize
  5204.   calcMinimumSize     ( ) const;
  5205. #line 95
  5206. private:
  5207. #line 99
  5208.   ICanvas   ( const ICanvas& canvas );
  5209. ICanvas
  5210.  &operator= ( const ICanvas& canvas );
  5211.  
  5212. static Style
  5213.   currentDefaultStyle;
  5214. ISize
  5215.   sizClLayout;
  5216. IWindowHandle
  5217.   hwndClDefaultButton;
  5218. Boolean
  5219.   bClChildrenReversed,
  5220.   bClDefaultHandlerAdded;
  5221. ICanvasData
  5222.  *fCanvasData;
  5223. friend class ICanvasHandler;
  5224.  
  5225. public:
  5226. #line 119
  5227. enum ColorArea {
  5228.   background
  5229. };
  5230. ICanvas
  5231.  &setColor ( ColorArea     area,
  5232.              const IColor& color );
  5233. IColor
  5234.   color    ( ColorArea     area ) const;
  5235.  
  5236. };
  5237.  
  5238. inline ICanvas::Style operator | ( const ICanvas::Style &lhs, const ICanvas::Style &rhs ){ ICanvas::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline ICanvas::Style operator & ( const ICanvas::Style &lhs, const ICanvas::Style::NegatedStyle &rhs ){ ICanvas::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline ICanvas::Style::NegatedStyle operator & ( const ICanvas::Style::NegatedStyle &lhs, const ICanvas::Style::NegatedStyle &rhs ){ ICanvas::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline ICanvas::Style operator & ( const ICanvas::Style::NegatedStyle &lhs, const ICanvas::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const ICanvas::Style &lhs, const ICanvas::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const ICanvas::Style &lhs, const ICanvas::Style &rhs );
  5239.  
  5240. #pragma pack()
  5241. #line 29 "F:\vacpp\INCLUDE\icanvas.inl"
  5242. inline void  ICanvas::setDefaultStyle ( const ICanvas::Style& style )
  5243.   {
  5244.   currentDefaultStyle = style;
  5245.   }
  5246. inline ISize  ICanvas::layoutSize ( ) const
  5247.   {
  5248.   return sizClLayout;
  5249.   }
  5250. inline ICanvas  &ICanvas::setLayoutSize ( const ISize& size )
  5251.   {
  5252.   sizClLayout = size;
  5253.   return *this;
  5254.   }
  5255. inline IBase::Boolean  ICanvas::areChildrenReversed ( ) const
  5256.   {
  5257.   return bClChildrenReversed;
  5258.   }
  5259. #line 19 "F:\vacpp\INCLUDE\istrenum.hpp"
  5260. #pragma pack(4)
  5261.  
  5262. class IStringEnum {
  5263. public:
  5264.  
  5265. typedef enum {
  5266.   leading,
  5267.   trailing,
  5268.   both
  5269.   } StripMode;
  5270. #line 31
  5271. typedef enum {
  5272.   sbcs,
  5273.   dbcs1 = 1,
  5274.   mbcs1 = 1,
  5275.   dbcs2 = 2,
  5276.   mbcs2 = 2,
  5277.   mbcs3 = 3,
  5278.   mbcs4 = 4
  5279.   } CharType;
  5280. };
  5281.  
  5282. #pragma pack()
  5283. #line 24 "F:\vacpp\INCLUDE\istring.hpp"
  5284. #pragma pack(4)
  5285.  
  5286. extern "C"
  5287.   {
  5288. #line 2 "F:\vacpp\INCLUDE\limits.h"
  5289. #pragma info( none )
  5290.  
  5291.    #pragma info( none )
  5292.  
  5293. #pragma info( restore )
  5294. #line 13
  5295.       extern "C" {
  5296. #line 63
  5297.       }
  5298. #line 69
  5299. #pragma info( none )
  5300.  
  5301.    #pragma info( restore )
  5302.  
  5303. #pragma info( restore )
  5304. #line 29 "F:\vacpp\INCLUDE\istring.hpp"
  5305.   }
  5306.  
  5307. class IStringTest;
  5308. class IBuffer;
  5309. class ostream;
  5310. class istream;
  5311.  
  5312. class IString : public IBase {
  5313. public:
  5314.  
  5315.   IString           ( );
  5316.   IString           ( const IString &aString );
  5317.  
  5318.   IString           ( int );
  5319.   IString           ( unsigned );
  5320.   IString           ( long );
  5321.   IString           ( unsigned long );
  5322.   IString           ( short );
  5323.   IString           ( unsigned short );
  5324.   IString           ( double );
  5325.  
  5326.   IString           ( char );
  5327.   IString           ( unsigned char );
  5328.   IString           ( signed char );
  5329.  
  5330.   IString           ( const char * );
  5331.   IString           ( const unsigned char * );
  5332.   IString           ( const signed char * );
  5333.  
  5334.   IString           ( const void *pBuffer1,
  5335.                       unsigned    lenBuffer1,
  5336.                       char        padCharacter = ' ' );
  5337.   IString           ( const void *pBuffer1,
  5338.                       unsigned     lenBuffer1,
  5339.                       const void  *pBuffer2,
  5340.                       unsigned     lenBuffer2,
  5341.                       char         padCharacter = ' ' );
  5342.   IString           ( const void *pBuffer1,
  5343.                       unsigned     lenBuffer1,
  5344.                       const void  *pBuffer2,
  5345.                       unsigned     lenBuffer2,
  5346.                       const void  *pBuffer3,
  5347.                       unsigned     lenBuffer3,
  5348.                       char         padCharacter = ' ' );
  5349.  
  5350.   ~IString          ( );
  5351. #line 77
  5352. IString
  5353.   asString          ( ) const,
  5354.   asDebugInfo       ( ) const;
  5355.  
  5356. friend ostream
  5357.  &operator <<       ( ostream       &aStream,
  5358.                       const IString &aString );
  5359. #line 86
  5360. friend istream
  5361.  &operator >>       ( istream &aStream,
  5362.                       IString &aString );
  5363.  
  5364. static IString
  5365.   lineFrom          ( istream &aStream,
  5366.                       char     delim = '\n' );
  5367. #line 95
  5368. Boolean
  5369.   isAlphanumeric    ( ) const,
  5370.   isAlphabetic      ( ) const,
  5371.   isASCII           ( ) const,
  5372.   isBinaryDigits    ( ) const,
  5373.   isControl         ( ) const,
  5374.   isDigits          ( ) const,
  5375.   isGraphics        ( ) const,
  5376.   isHexDigits       ( ) const,
  5377.   isLowerCase       ( ) const,
  5378.   isPrintable       ( ) const,
  5379.   isPunctuation     ( ) const,
  5380.   isUpperCase       ( ) const,
  5381.   isWhiteSpace      ( ) const;
  5382. #line 111
  5383. Boolean
  5384.   isMBCS            ( ) const,
  5385.   isDBCS            ( ) const,
  5386.   isSBCS            ( ) const,
  5387.   isValidMBCS       ( ) const,
  5388.   isValidDBCS       ( ) const,
  5389.   includesMBCS      ( ) const,
  5390.   includesDBCS      ( ) const,
  5391.   includesSBCS      ( ) const;
  5392. #line 123
  5393. Boolean
  5394.   isLike            ( const IString &aPattern,
  5395.                       char           zeroOrMore = '*',
  5396.                       char           anyChar    = '?' ) const,
  5397.   isLike            ( const char    *pPattern,
  5398.                       char           zeroOrMore = '*',
  5399.                       char           anyChar    = '?' ) const,
  5400.  
  5401.   isAbbreviationFor ( const IString &fullString,
  5402.                       unsigned       minAbbrevLength = 0 ) const,
  5403.   isAbbreviationFor ( const char    *pFullString,
  5404.                       unsigned       minAbbrevLength = 0 ) const,
  5405.  
  5406.   includes          ( const IString     &aString ) const,
  5407.   includes          ( const char        *pString ) const,
  5408.   includes          ( char               aChar   ) const,
  5409.   includes          ( const IStringTest &aTest   ) const;
  5410. #line 142
  5411. friend Boolean
  5412.   operator ==      ( const IString &string1,
  5413.                      const IString &string2  ),
  5414.   operator ==      ( const IString &string1,
  5415.                      const char    *pString2 ),
  5416.   operator ==      ( const char    *pString1,
  5417.                      const IString &string2  ),
  5418.  
  5419.   operator !=      ( const IString &string1,
  5420.                      const IString &string2  ),
  5421.   operator !=      ( const IString &string1,
  5422.                      const char    *pString2 ),
  5423.   operator !=      ( const char    *pString1,
  5424.                      const IString &string2  ),
  5425.  
  5426.   operator <       ( const IString &string1,
  5427.                      const IString &string2  ),
  5428.   operator <       ( const IString &string1,
  5429.                      const char    *pString2 ),
  5430.   operator <       ( const char    *pString1,
  5431.                      const IString &string2  ),
  5432.  
  5433.   operator <=      ( const IString &string1,
  5434.                      const IString &string2  ),
  5435.   operator <=      ( const IString &string1,
  5436.                      const char    *pString2 ),
  5437.   operator <=      ( const char    *pString1,
  5438.                      const IString &string2  ),
  5439.  
  5440.   operator >       ( const IString &string1,
  5441.                      const IString &string2  ),
  5442.   operator >       ( const IString &string1,
  5443.                      const char    *pString2 ),
  5444.   operator >       ( const char    *pString1,
  5445.                      const IString &string2  ),
  5446.  
  5447.   operator >=      ( const IString &string1,
  5448.                      const IString &string2  ),
  5449.   operator >=      ( const IString &string1,
  5450.                      const char    *pString2 ),
  5451.   operator >=      ( const char    *pString1,
  5452.                      const IString &string2  );
  5453. #line 186
  5454.   operator char*          ( ) const;
  5455.   operator unsigned char* ( ) const;
  5456.   operator signed char*   ( ) const;
  5457. #line 191
  5458. long
  5459.   asInt                   ( ) const;
  5460.  
  5461. unsigned long
  5462.   asUnsigned              ( ) const;
  5463.  
  5464. double
  5465.   asDouble                ( ) const;
  5466. #line 201
  5467. IString
  5468.  &b2c              ( ),
  5469.  &b2d              ( ),
  5470.  &b2x              ( );
  5471.  
  5472. static IString
  5473.   b2c              ( const IString &aString ),
  5474.   b2d              ( const IString &aString ),
  5475.   b2x              ( const IString &aString );
  5476. #line 212
  5477. IString
  5478.  &c2b              ( ),
  5479.  &c2d              ( ),
  5480.  &c2x              ( );
  5481.  
  5482. static IString
  5483.   c2b              ( const IString &aString ),
  5484.   c2d              ( const IString &aString ),
  5485.   c2x              ( const IString &aString );
  5486. #line 223
  5487. IString
  5488.  &d2b              ( ),
  5489.  &d2c              ( ),
  5490.  &d2x              ( );
  5491.  
  5492. static IString
  5493.   d2b              ( const IString &aString ),
  5494.   d2c              ( const IString &aString ),
  5495.   d2x              ( const IString &aString );
  5496. #line 234
  5497. IString
  5498.  &x2b              ( ),
  5499.  &x2c              ( ),
  5500.  &x2d              ( );
  5501.  
  5502. static IString
  5503.   x2b              ( const IString &aString ),
  5504.   x2c              ( const IString &aString ),
  5505.   x2d              ( const IString &aString );
  5506. #line 246
  5507. IString
  5508.  &operator =       ( const IString &aString ),
  5509.   operator ~       (                        ) const,
  5510.   operator +       ( const IString &aString ) const,
  5511.   operator +       ( const char    *pString ) const,
  5512.  &operator +=      ( const IString &aString ),
  5513.  &operator +=      ( const char    *pString ),
  5514.   operator &       ( const IString &aString ) const,
  5515.   operator &       ( const char    *pString ) const,
  5516.  &operator &=      ( const IString &aString ),
  5517.  &operator &=      ( const char    *pString ),
  5518.   operator |       ( const IString &aString ) const,
  5519.   operator |       ( const char    *pString ) const,
  5520.  &operator |=      ( const IString &aString ),
  5521.  &operator |=      ( const char    *pString ),
  5522.   operator ^       ( const IString &aString ) const,
  5523.   operator ^       ( const char    *pString ) const,
  5524.  &operator ^=      ( const IString &aString ),
  5525.  &operator ^=      ( const char    *pString );
  5526.  
  5527. friend IString
  5528.   operator +       ( const char    *pString,
  5529.                      const IString &aString ),
  5530.   operator &       ( const char    *pString,
  5531.                      const IString &aString ),
  5532.   operator |       ( const char    *pString,
  5533.                      const IString &aString ),
  5534.   operator ^       ( const char    *pString,
  5535.                      const IString &aString );
  5536. #line 277
  5537. unsigned
  5538.   size              ( ) const,
  5539.   length            ( ) const;
  5540.  
  5541. IString
  5542.   subString         ( unsigned startPos ) const,
  5543.   subString         ( unsigned startPos,
  5544.                       unsigned length,
  5545.                       char     padCharacter = ' ' ) const;
  5546.  
  5547. char
  5548.  &operator []       ( unsigned index );
  5549.  
  5550. const char
  5551.  &operator []       ( unsigned index ) const;
  5552.  
  5553. IStringEnum::CharType
  5554.   charType          ( unsigned index ) const;
  5555. #line 297
  5556. unsigned
  5557.   indexOf           ( const IString     &aString,
  5558.                       unsigned           startPos = 1 ) const,
  5559.   indexOf           ( const char        *pString,
  5560.                       unsigned           startPos = 1 ) const,
  5561.   indexOf           ( char              aCharacter,
  5562.                       unsigned           startPos = 1 ) const,
  5563.   indexOf           ( const IStringTest &aTest,
  5564.                       unsigned           startPos = 1 ) const,
  5565.  
  5566.   indexOfAnyBut     ( const IString     &validChars,
  5567.                       unsigned           startPos = 1 ) const,
  5568.   indexOfAnyBut     ( const char        *pValidChars,
  5569.                       unsigned           startPos = 1 ) const,
  5570.   indexOfAnyBut     ( char               validChar,
  5571.                      unsigned           startPos = 1 ) const,
  5572.   indexOfAnyBut     ( const IStringTest &aTest,
  5573.                       unsigned           startPos = 1 ) const,
  5574.  
  5575.   indexOfAnyOf      ( const IString     &searchChars,
  5576.                       unsigned           startPos = 1 ) const,
  5577.   indexOfAnyOf      ( const char        *pSearchChars,
  5578.                       unsigned           startPos = 1 ) const,
  5579.   indexOfAnyOf      ( char               searchChar,
  5580.                       unsigned           startPos = 1 ) const,
  5581.   indexOfAnyOf      ( const IStringTest &aTest,
  5582.                       unsigned           startPos = 1 ) const,
  5583.  
  5584.   occurrencesOf     ( const IString     &aString,
  5585.                       unsigned           startPos = 1 ) const,
  5586.   occurrencesOf     ( const char        *pString,
  5587.                       unsigned           startPos = 1 ) const,
  5588.   occurrencesOf     ( char              aCharacter,
  5589.                       unsigned           startPos = 1 ) const,
  5590.   occurrencesOf     ( const IStringTest &aTest,
  5591.                       unsigned           startPos = 1 ) const;
  5592. #line 336
  5593. unsigned
  5594.   lastIndexOf       ( const IString &aString,
  5595.                       unsigned       startPos = (unsigned)0xffffffff ) const,
  5596.   lastIndexOf       ( const char    *pString,
  5597.                       unsigned       startPos = (unsigned)0xffffffff ) const,
  5598.   lastIndexOf       ( char          aCharacter,
  5599.                       unsigned       startPos = (unsigned)0xffffffff ) const,
  5600.   lastIndexOf       ( const IStringTest &aTest,
  5601.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5602.  
  5603.   lastIndexOfAnyBut ( const IString     &validChars,
  5604.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5605.   lastIndexOfAnyBut ( const char        *pValidChars,
  5606.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5607.   lastIndexOfAnyBut ( char               validChar,
  5608.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5609.   lastIndexOfAnyBut ( const IStringTest &aTest,
  5610.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5611.  
  5612.   lastIndexOfAnyOf  ( const IString     &searchChars,
  5613.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5614.   lastIndexOfAnyOf  ( const char        *pSearchChars,
  5615.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5616.   lastIndexOfAnyOf  ( char               searchChar,
  5617.                       unsigned           startPos = (unsigned)0xffffffff ) const,
  5618.   lastIndexOfAnyOf  ( const IStringTest &aTest,
  5619.                       unsigned           startPos = (unsigned)0xffffffff ) const;
  5620. #line 365
  5621. IString
  5622.  ¢er            ( unsigned length,
  5623.                       char     padCharacter = ' ' ),
  5624.  
  5625.  &change            ( const IString &inputString,
  5626.                       const IString &outputString,
  5627.                       unsigned       startPos = 1,
  5628.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5629.  &change            ( const IString &inputString,
  5630.                       const char    *pOutputString,
  5631.                       unsigned       startPos = 1,
  5632.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5633.  &change            ( const char    *pInputString,
  5634.                       const IString &outputString,
  5635.                       unsigned       startPos = 1,
  5636.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5637.  &change            ( const char    *pInputString,
  5638.                       const char    *pOutputString,
  5639.                       unsigned       startPos = 1,
  5640.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5641.  
  5642.  ©              ( unsigned numCopies ),
  5643.  
  5644.  &insert            ( const IString &aString,
  5645.                       unsigned       index = 0,
  5646.                       char           padCharacter = ' ' ),
  5647.  &insert            ( const char    *pString,
  5648.                       unsigned       index = 0,
  5649.                       char           padCharacter = ' ' ),
  5650.  
  5651.  &leftJustify       ( unsigned length,
  5652.                       char     padCharacter = ' ' ),
  5653.  
  5654.  &lowerCase         ( ),
  5655.  
  5656.  &overlayWith       ( const IString &aString,
  5657.                       unsigned       index        = 1,
  5658.                       char           padCharacter = ' ' ),
  5659.  &overlayWith       ( const char    *pString,
  5660.                       unsigned       index        = 1,
  5661.                       char           padCharacter = ' ' ),
  5662.  
  5663.  &remove            ( unsigned startPos ),
  5664.  &remove            ( unsigned startPos,
  5665.                       unsigned numChars ),
  5666.  
  5667.  &reverse           ( ),
  5668.  
  5669.  &rightJustify      ( unsigned length,
  5670.                       char     padCharacter = ' ' ),
  5671.  
  5672.  &strip             ( ),
  5673.  &strip             ( char               aCharacter ),
  5674.  &strip             ( const IString     &aString ),
  5675.  &strip             ( const char        *pString ),
  5676.  &strip             ( const IStringTest &aTest ),
  5677.  
  5678.  &stripLeading      ( ),
  5679.  &stripLeading      ( char               aCharacter ),
  5680.  &stripLeading      ( const IString     &aString ),
  5681.  &stripLeading      ( const char        *pString ),
  5682.  &stripLeading      ( const IStringTest &aTest ),
  5683.  
  5684.  &stripTrailing     ( ),
  5685.  &stripTrailing     ( char               aCharacter ),
  5686.  &stripTrailing     ( const IString     &aString ),
  5687.  &stripTrailing     ( const char        *pString ),
  5688.  &stripTrailing     ( const IStringTest &aTest ),
  5689.  
  5690.  &translate         ( const IString &inputChars,
  5691.                       const IString &outputChars,
  5692.                       char           padCharacter = ' ' ),
  5693.  &translate         ( const IString &inputChars,
  5694.                       const char    *pOutputChars,
  5695.                       char           padCharacter = ' ' ),
  5696.  &translate         ( const char    *pInputChars,
  5697.                       const IString &outputChars,
  5698.                       char           padCharacter = ' ' ),
  5699.  &translate         ( const char    *pInputChars,
  5700.                       const char    *pOutputChars,
  5701.                       char           padCharacter = ' ' ),
  5702.  
  5703.  &upperCase         ( );
  5704.  
  5705. static IString
  5706.   center            ( const IString &aString,
  5707.                       unsigned       length,
  5708.                       char           padCharacter = ' ' ),
  5709.  
  5710.   change            ( const IString &aString,
  5711.                       const IString &inputString,
  5712.                       const IString &outputString,
  5713.                       unsigned       startPos = 1,
  5714.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5715.   change            ( const IString &aString,
  5716.                       const IString &inputString,
  5717.                       const char    *pOutputString,
  5718.                       unsigned       startPos = 1,
  5719.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5720.   change            ( const IString &aString,
  5721.                       const char    *pInputString,
  5722.                       const IString &outputString,
  5723.                       unsigned       startPos = 1,
  5724.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5725.   change            ( const IString &aString,
  5726.                       const char    *pInputString,
  5727.                       const char    *pOutputString,
  5728.                       unsigned       startPos = 1,
  5729.                       unsigned       numChanges = (unsigned)0xffffffff ),
  5730.  
  5731.   copy              ( const IString &aString,
  5732.                       unsigned       numCopies ),
  5733.  
  5734.   insert            ( const IString &aString,
  5735.                       const IString &anInsert,
  5736.                       unsigned       index = 0,
  5737.                       char           padCharacter = ' ' ),
  5738.   insert            ( const IString &aString,
  5739.                       const char    *pInsert,
  5740.                       unsigned       index = 0,
  5741.                       char           padCharacter = ' ' ),
  5742.  
  5743.   leftJustify       ( const IString &aString,
  5744.                       unsigned       length,
  5745.                       char           padCharacter = ' ' ),
  5746.  
  5747.   lowerCase         ( const IString &aString ),
  5748.  
  5749.   overlayWith       ( const IString &aString,
  5750.                       const IString &anOverlay,
  5751.                       unsigned       index        = 1,
  5752.                       char           padCharacter = ' ' ),
  5753.   overlayWith       ( const IString &aString,
  5754.                       const char    *pOverlay,
  5755.                       unsigned       index        = 1,
  5756.                       char           padCharacter = ' ' ),
  5757.  
  5758.   remove            ( const IString &aString,
  5759.                       unsigned       startPos ),
  5760.   remove            ( const IString &aString,
  5761.                       unsigned       startPos,
  5762.                       unsigned       numChars ),
  5763.  
  5764.   reverse           ( const IString &aString ),
  5765.  
  5766.   rightJustify      ( const IString &aString,
  5767.                       unsigned       length,
  5768.                       char           padCharacter = ' ' ),
  5769.  
  5770.   stripBlanks       ( const IString &aString ),
  5771.   strip             ( const IString &aString,
  5772.                       char           aChar ),
  5773.   strip             ( const IString &aString,
  5774.                       const IString &aStringOfChars ),
  5775.   strip             ( const IString &aString,
  5776.                       const char    *pStringOfChars ),
  5777.   strip             ( const IString &aString,
  5778.                       const IStringTest &aTest ),
  5779.  
  5780.   stripLeadingBlanks ( const IString &aString ),
  5781.   stripLeading      ( const IString &aString,
  5782.                       char           aChar ),
  5783.   stripLeading      ( const IString &aString,
  5784.                       const IString &aStringOfChars ),
  5785.   stripLeading      ( const IString &aString,
  5786.                       const char    *pStringOfChars ),
  5787.   stripLeading      ( const IString &aString,
  5788.                       const IStringTest &aTest ),
  5789.  
  5790.   stripTrailingBlanks ( const IString &aString ),
  5791.   stripTrailing     ( const IString &aString,
  5792.                       char           aChar ),
  5793.   stripTrailing     ( const IString &aString,
  5794.                       const IString &aStringOfChars ),
  5795.   stripTrailing     ( const IString &aString,
  5796.                       const char    *pStringOfChars ),
  5797.   stripTrailing     ( const IString &aString,
  5798.                       const IStringTest &aTest ),
  5799.  
  5800.   translate         ( const IString &aString,
  5801.                       const IString &inputChars,
  5802.                       const IString &outputChars,
  5803.                       char           padCharacter = ' ' ),
  5804.   translate         ( const IString &aString,
  5805.                       const IString &inputChars,
  5806.                       const char    *pOutputChars,
  5807.                       char           padCharacter = ' ' ),
  5808.   translate         ( const IString &aString,
  5809.                       const char    *pInputChars,
  5810.                       const IString &outputChars,
  5811.                       char           padCharacter = ' ' ),
  5812.   translate         ( const IString &aString,
  5813.                       const char    *pInputChars,
  5814.                       const char    *pOutputChars,
  5815.                       char           padCharacter = ' ' ),
  5816.  
  5817.   upperCase         ( const IString &aString );
  5818. #line 564
  5819. IString
  5820.  &removeWords       ( unsigned firstWord ),
  5821.  &removeWords       ( unsigned firstWord,
  5822.                       unsigned numWords ),
  5823.  
  5824.  &space             ( unsigned numSpaces = 1,
  5825.                       char     spaceChar = ' ' ),
  5826.  
  5827.   word              ( unsigned  wordNumber ) const,
  5828.  
  5829.   words             ( unsigned  firstWord ) const,
  5830.   words             ( unsigned  firstWord,
  5831.                       unsigned  numWords  ) const;
  5832.  
  5833. unsigned
  5834.   indexOfPhrase     ( const IString &wordString,
  5835.                       unsigned       startWord = 1 ) const,
  5836.  
  5837.   indexOfWord       ( unsigned wordNumber ) const,
  5838.  
  5839.   lengthOfWord      ( unsigned wordNumber ) const,
  5840.  
  5841.   numWords          ( ) const,
  5842.  
  5843.   wordIndexOfPhrase ( const IString &aPhrase,
  5844.                       unsigned       startWord = 1 ) const;
  5845.  
  5846. static IString
  5847.   space             ( const IString &aString,
  5848.                       unsigned       numSpaces = 1,
  5849.                       char           spaceChar = ' ' ),
  5850.  
  5851.   removeWords       ( const IString &aString,
  5852.                       unsigned       startWord ),
  5853.   removeWords       ( const IString &aString,
  5854.                       unsigned       startWord,
  5855.                       unsigned       numWords  );
  5856. #line 604
  5857. protected:
  5858.  
  5859. static const char
  5860.  *null,
  5861.  *zero,
  5862.  *maxLong;
  5863.  
  5864. static char
  5865.  *nullBuffer;
  5866. #line 615
  5867. IString
  5868.  &setBuffer         ( IBuffer *ibuff ),
  5869.  
  5870.  &initBuffer        ( const void *p1,
  5871.                       unsigned    len1,
  5872.                       const void *p2      = 0,
  5873.                       unsigned    len2    = 0,
  5874.                       const void *p3      = 0,
  5875.                       unsigned    len3    = 0,
  5876.                       char        padChar = 0 ),
  5877.  &initBuffer        ( long n ),
  5878.  &initBuffer        ( unsigned long n ),
  5879.  &initBuffer        ( double d );
  5880. #line 631
  5881. char
  5882.  *data              ( ) const;
  5883.  
  5884. IBuffer
  5885.  *buffer            ( ) const;
  5886.  
  5887. static unsigned
  5888.   lengthOf          ( const char *p );
  5889.  
  5890. static char
  5891.  *defaultBuffer     ( );
  5892. #line 645
  5893. typedef enum {
  5894.   charIndex,
  5895.   wordIndex
  5896.   } IndexType;
  5897.  
  5898. unsigned
  5899.   indexOfWord       ( unsigned wordNumber,
  5900.                       unsigned startPos,
  5901.                       unsigned numWords ) const,
  5902.  
  5903.   occurrencesOf     ( const char *pSearchString,
  5904.                       unsigned    searchLen,
  5905.                       unsigned    startPos ) const,
  5906. #line 660
  5907.   findPhrase        ( const IString &aPhrase,
  5908.                       unsigned       startWord,
  5909.                       IndexType      charOrWord ) const;
  5910.  
  5911. Boolean
  5912.   isLike            ( const char *pPattern,
  5913.                       unsigned    patternLen,
  5914.                       char        zeroOrMore,
  5915.                       char        anyChar ) const,
  5916.  
  5917.   isAbbrevFor       ( const char *pFullString,
  5918.                       unsigned    fullLen,
  5919.                       unsigned    minLen ) const;
  5920. #line 675
  5921. IString
  5922.  &change            ( const char *pPattern,
  5923.                       unsigned    patternLen,
  5924.                       const char *pReplacement,
  5925.                       unsigned    replacementLen,
  5926.                       unsigned    startPos,
  5927.                       unsigned    numChanges ),
  5928.  
  5929.  &insert            ( const char *pInsert,
  5930.                       unsigned    insertLen,
  5931.                       unsigned    startPos,
  5932.                       char        padCharacter ),
  5933.  
  5934.  &overlayWith       ( const char *pOverlay,
  5935.                       unsigned    overlayLen,
  5936.                       unsigned    index,
  5937.                       char        padCharacter ),
  5938.  
  5939.  &strip             ( const char             *p,
  5940.                       unsigned                len,
  5941.                       IStringEnum::StripMode  mode ),
  5942.  
  5943.  &strip             ( const IStringTest      &aTest,
  5944.                       IStringEnum::StripMode  mode ),
  5945.  
  5946.  &translate         ( const char *pInputChars,
  5947.                       unsigned    inputLen,
  5948.                       const char *pOutputChars,
  5949.                       unsigned    outputLen,
  5950.                       char        padCharacter );
  5951. #line 708
  5952. typedef enum {
  5953.   and,
  5954.   or,
  5955.   exclusiveOr
  5956.   } BitOperator;
  5957.  
  5958. IString
  5959.  &applyBitOp        ( const char *pArg,
  5960.                       unsigned    argLen,
  5961.                       BitOperator op );
  5962. #line 721
  5963. private:
  5964.  
  5965.   IString           ( IBuffer *pBuffer );
  5966. void
  5967.   binaryMath        ( unsigned char newDigit ),
  5968.   decimalMath       ( unsigned char newDigit );
  5969. IString
  5970.  &prepareToChange   ( );
  5971. char
  5972.  *pBuffer;
  5973.  
  5974. static void
  5975.   setDefaultBuffer  ( char * );
  5976. friend class IBuffer;
  5977. };  
  5978.  
  5979. #pragma pack()
  5980. #line 17 "F:\vacpp\INCLUDE\istring.inl"
  5981. extern "C"
  5982.   {
  5983. #line 2 "F:\vacpp\INCLUDE\ctype.h"
  5984. #pragma info( none )
  5985.  
  5986.    #pragma info( none )
  5987.  
  5988. #pragma info( restore )
  5989. #line 13
  5990.       extern "C" {
  5991. #line 34
  5992.    int _Optlink isalnum( int );
  5993.    int _Optlink isalpha( int );
  5994.  
  5995.      int _Optlink isblank( int );
  5996.  
  5997.    int _Optlink iscntrl( int );
  5998.    int _Optlink isdigit( int );
  5999.    int _Optlink isgraph( int );
  6000.    int _Optlink islower( int );
  6001.    int _Optlink isprint( int );
  6002.    int _Optlink ispunct( int );
  6003.    int _Optlink isspace( int );
  6004.    int _Optlink isupper( int );
  6005.    int _Optlink isxdigit( int );
  6006.    int _Optlink tolower( int );
  6007.    int _Optlink toupper( int );
  6008. #line 93
  6009.    extern const unsigned short *_ctype;
  6010. #line 96
  6011.       inline int isalnum ( int c )
  6012.                           { return _ctype[(c)] & 0x0800U; }
  6013.       inline int isalpha ( int c )
  6014.                           { return _ctype[(c)] & 0x0100U; }
  6015.       inline int iscntrl ( int c )
  6016.                           { return _ctype[(c)] & 0x0020U; }
  6017.       inline int isdigit ( int c )
  6018.                           { return _ctype[(c)] & 0x0002U; }
  6019.       inline int isgraph ( int c )
  6020.                           { return _ctype[(c)] & 0x0200U; }
  6021.       inline int islower ( int c )
  6022.                           { return _ctype[(c)] & 0x0040U; }
  6023.       inline int isprint ( int c )
  6024.                           { return _ctype[(c)] & 0x0400U; }
  6025.       inline int ispunct ( int c )
  6026.                           { return _ctype[(c)] & 0x0010U; }
  6027.       inline int isspace ( int c )
  6028.                           { return _ctype[(c)] & 0x0008U; }
  6029.       inline int isupper ( int c )
  6030.                           { return _ctype[(c)] & 0x0080U; }
  6031.       inline int isxdigit( int c )
  6032.                           { return _ctype[(c)] & 0x0001U; }
  6033.       inline int tolower ( int c )
  6034.                           { return (signed short)_ctype[(c) + 514]; }
  6035.       inline int toupper ( int c )
  6036.                           { return (signed short)_ctype[(c) + 257]; }
  6037. #line 146
  6038.       int _Optlink _tolower( int );
  6039.       int _Optlink _toupper( int );
  6040.       int _Optlink _isascii( int );
  6041.       int _Optlink _iscsymf( int );
  6042.       int _Optlink _iscsym( int );
  6043.       int _Optlink _toascii( int );
  6044.       int _Optlink isblank( int );
  6045. #line 155
  6046.       #pragma info( none )
  6047. #line 165
  6048.          inline int isascii( int c ) { return ( (unsigned)(c) < 0x80 ); }
  6049.          inline int iscsymf( int c ) { return ( isalpha( c ) || (c) == '_' ); }
  6050.          inline int iscsym ( int c ) { return ( isalnum( c ) || (c) == '_' ); }
  6051.          inline int toascii( int c ) { return ( (c) & 0x7f ); }
  6052.          inline int isblank ( int c )
  6053.                              { return _ctype[(c)] & 0x1000U; }
  6054. #line 179
  6055.       #pragma info( restore )
  6056. #line 185
  6057.       }
  6058. #line 191
  6059. #pragma info( none )
  6060.  
  6061.    #pragma info( restore )
  6062.  
  6063. #pragma info( restore )
  6064. #line 2 "F:\vacpp\INCLUDE\limits.h"
  6065. #pragma info( none )
  6066.  
  6067.    #pragma info( none )
  6068.  
  6069. #pragma info( restore )
  6070. #line 69
  6071. #pragma info( none )
  6072.  
  6073.    #pragma info( restore )
  6074.  
  6075. #pragma info( restore )
  6076. #line 2 "F:\vacpp\INCLUDE\string.h"
  6077. #pragma info( none )
  6078.  
  6079.    #pragma info( none )
  6080.  
  6081. #pragma info( restore )
  6082. #line 13
  6083.       extern "C" {
  6084. #line 44
  6085.       typedef unsigned int size_t;
  6086. #line 56
  6087.    char * _Builtin __strcat( char *, const char * );
  6088.    char * _Builtin __strchr( const char *, int );
  6089.    int    _Builtin __strcmp( const char *, const char * );
  6090.    char * _Builtin __strcpy( char*, const char * );
  6091.    size_t _Builtin __strlen( const char * );
  6092.    char * _Builtin __strncat( char *, const char *, size_t );
  6093.    int    _Builtin __strncmp( const char *, const char *, size_t );
  6094.    char * _Builtin __strncpy( char *, const char *, size_t );
  6095.    char * _Builtin __strrchr( const char *, int );
  6096. #line 67
  6097.    int     _Optlink strcoll( const char *, const char * );
  6098.    size_t  _Optlink strcspn( const char *, const char * );
  6099.    char *  _Optlink strerror( int );
  6100.    char *  _Optlink strpbrk( const char *, const char * );
  6101.    size_t  _Optlink strspn( const char *, const char * );
  6102.    char *  _Optlink strstr( const char *, const char * );
  6103.    char *  _Optlink strtok( char*, const char * );
  6104.    size_t  _Optlink strxfrm( char *, const char *, size_t );
  6105. #line 78
  6106.       inline char * _Optlink strcat( char * s1, const char * s2 )
  6107.                                { return __strcat( s1, s2 ); }
  6108.       inline char * _Optlink strchr( const char * s, int ch )
  6109.                                { return __strchr( s, ch ); }
  6110.       inline int    _Optlink strcmp( const char * s1, const char * s2 )
  6111.                                { return __strcmp( s1, s2 ); }
  6112.       inline char * _Optlink strcpy( char * s1, const char * s2 )
  6113.                                { return __strcpy( s1, s2 ); }
  6114.       inline size_t _Optlink strlen( const char * s )
  6115.                                { return __strlen( s ); }
  6116.       inline char * _Optlink strncat( char * s1, const char * s2, size_t len )
  6117.                                { return __strncat( s1, s2, len ); }
  6118.       inline int    _Optlink strncmp( const char * s1, const char * s2, size_t len )
  6119.                                { return __strncmp( s1, s2, len ); }
  6120.       inline char * _Optlink strncpy( char * s1, const char * s2, size_t len )
  6121.                                { return __strncpy( s1, s2, len ); }
  6122.       inline char * _Optlink strrchr( const char * s1, int ch )
  6123.                                { return __strrchr( s1, ch ); }
  6124. #line 137
  6125.       void * _Builtin __memcpy( void *, const void *, size_t );
  6126.       void * _Builtin __memchr( const void *, int, size_t );
  6127.       int    _Builtin __memcmp( const void *, const void *, size_t );
  6128.       void * _Builtin __memset( void *, int, size_t );
  6129.       void * _Builtin __memmove( void *, const void *, size_t );
  6130. #line 146
  6131.          inline void * _Optlink memcpy( void * m1, const void * m2, size_t len )
  6132.                                   { return __memcpy( m1, m2, len ); }
  6133.          inline void * _Optlink memchr( const void * m, int ch, size_t len )
  6134.                                   { return __memchr( m, ch, len ); }
  6135.          inline int    _Optlink memcmp( const void * m1, const void * m2, size_t len )
  6136.                                   { return __memcmp( m1, m2, len ); }
  6137.          inline void * _Optlink memset( void * m, int ch, size_t len )
  6138.                                   { return __memset( m, ch, len ); }
  6139.          inline void * _Optlink memmove( void * m1, const void * m2, size_t len )
  6140.                                   { return __memmove( m1, m2, len ); }
  6141. #line 183
  6142.          void *  _Optlink memccpy( void *, void *, int, unsigned int );
  6143.          int     _Optlink memicmp( void *, void *, unsigned int );
  6144. #line 199
  6145.       char *  _Optlink strdup( const char * );
  6146.       int     _Optlink stricmp( const char *, const char * );
  6147.       char *  _Optlink strlwr( char * );
  6148.       int     _Optlink strnicmp( const char *, const char *, size_t );
  6149.       char *  _Optlink strupr( char * );
  6150.  
  6151.       int     _Optlink strcmpi( const char *, const char * );
  6152.       char *  _Optlink strrev( char * );
  6153.       char *  _Optlink strset( char *, int );
  6154.       char *  _Optlink strnset( char *, int, size_t );
  6155.       char *  _Optlink _strerror( char * );
  6156. #line 222
  6157.       size_t  _Optlink _fstrcspn( const char *, const char * );
  6158.       char *  _Optlink _fstrdup( const char * );
  6159.       char *  _Optlink _nstrdup( const char * );
  6160.       int     _Optlink _fstricmp( const char *, const char * );
  6161.       char *  _Optlink _fstrlwr( char * );
  6162.       int     _Optlink _fstrnicmp( const char *, const char *, size_t );
  6163.       char *  _Optlink _fstrnset( char *, int, size_t );
  6164.       char *  _Optlink _fstrpbrk( const char *, const char * );
  6165.       char *  _Optlink _fstrrev( char * );
  6166.       char *  _Optlink _fstrset( char *, int );
  6167.       size_t  _Optlink _fstrspn( const char *, const char * );
  6168.       char *  _Optlink _fstrstr( const char *, const char * );
  6169.       char *  _Optlink _fstrtok( char*, const char * );
  6170.       char *  _Optlink _fstrupr( char * );
  6171. #line 238
  6172.       #pragma map( _fstrcspn , "strcspn"  )
  6173.       #pragma map( _fstrdup  , "strdup"   )
  6174.       #pragma map( _nstrdup  , "strdup"   )
  6175.       #pragma map( _fstricmp , "stricmp"  )
  6176.       #pragma map( _fstrlwr  , "strlwr"   )
  6177.       #pragma map( _fstrnicmp, "strnicmp" )
  6178.       #pragma map( _fstrnset , "strnset"  )
  6179.       #pragma map( _fstrpbrk , "strpbrk"  )
  6180.       #pragma map( _fstrrev  , "strrev"   )
  6181.       #pragma map( _fstrset  , "strset"   )
  6182.       #pragma map( _fstrspn  , "strspn"   )
  6183.       #pragma map( _fstrstr  , "strstr"   )
  6184.       #pragma map( _fstrtok  , "strtok"   )
  6185.       #pragma map( _fstrupr  , "strupr"   )
  6186. #line 272
  6187.       }
  6188. #line 278
  6189. #pragma info( none )
  6190.  
  6191.    #pragma info( restore )
  6192.  
  6193. #pragma info( restore )
  6194. #line 2 "F:\vacpp\INCLUDE\stdlib.h"
  6195. #pragma info( none )
  6196.  
  6197.    #pragma info( none )
  6198.  
  6199. #pragma info( restore )
  6200. #line 13
  6201.       extern "C" {
  6202. #line 49
  6203.      typedef unsigned short wchar_t;
  6204. #line 52
  6205.    typedef struct _div_t
  6206.        {
  6207.        int quot;         
  6208.        int rem;          
  6209.        } div_t;
  6210.  
  6211.    typedef struct _ldiv_t
  6212.        {
  6213.        long int quot;    
  6214.        long int rem;     
  6215.        } ldiv_t;
  6216. #line 85
  6217.       typedef unsigned long  _System  _EH_RTN(void *,void *,void *,void *);
  6218. #line 91
  6219.    extern int  _Optlink _eh_del(_EH_RTN *);
  6220.    extern int  _Optlink _eh_add(_EH_RTN *);
  6221.    extern int  _mb_cur_max;
  6222. #line 99
  6223.    int      _Builtin __abs( int );
  6224.    long int _Builtin __labs( long int );
  6225. #line 103
  6226.    double    _Optlink atof( const char * );
  6227.    int       _Optlink atoi( const char * );
  6228.    long int  _Optlink atol( const char * );
  6229.    double    _Optlink strtod( const char *, char ** );
  6230.    long int  _Optlink strtol( const char *, char **, int );
  6231.    unsigned long int  _Optlink strtoul( const char *, char **, int );
  6232.    int       _Optlink rand( void );
  6233.    void      _Optlink srand( unsigned int );
  6234.    void *   ( _Optlink calloc)( size_t, size_t );
  6235.    void     ( _Optlink free)( void * );
  6236.    void *   ( _Optlink malloc)( size_t );
  6237.    void *   ( _Optlink realloc)( void *, size_t );
  6238.    void      _Optlink abort( void );
  6239.    int       _Optlink atexit( void ( * )( void ) );
  6240.    void      _Optlink exit( int );
  6241.    char *    _Optlink getenv( const char * );
  6242.    int       _Optlink system( const char * );
  6243.    void *    _Optlink bsearch( const void *, const void *, size_t, size_t,
  6244.                               int ( * _Optlink __compare )( const void *, const void * ) );
  6245.    void      _Optlink qsort( void *, size_t, size_t,
  6246.                             int ( * _Optlink __compare )( const void *, const void * ) );
  6247.    div_t     _Optlink div( int, int );
  6248.    ldiv_t    _Optlink ldiv( long int, long int );
  6249.    int       _Optlink mblen( const char *, size_t );
  6250.    int       _Optlink mbtowc( wchar_t *, const char *, size_t );
  6251.    int       _Optlink wctomb( char *, wchar_t );
  6252.    size_t    _Optlink mbstowcs( wchar_t *, const char *, size_t );
  6253.    size_t    _Optlink wcstombs( char *, const wchar_t *, size_t );
  6254. #line 134
  6255.       inline int      _Optlink abs ( int x )      { return __abs ( x ); }
  6256.       inline long int _Optlink labs( long int l ) { return __labs( l ); }
  6257. #line 156
  6258.          void * _Builtin __alloca( size_t );
  6259.          #pragma info( none )
  6260. #line 160
  6261.          #pragma info( restore )
  6262. #line 163
  6263.       unsigned char _Builtin __parmdwords( void );
  6264. #line 166
  6265.       long double  _Optlink _atold( const char * );
  6266.       char *  _Optlink  ecvt( double, int, int *, int * );
  6267.       char *  _Optlink _ecvt( double, int, int *, int * );
  6268.       char *  _Optlink  fcvt( double, int, int *, int * );
  6269.       char *  _Optlink _fcvt( double, int, int *, int * );
  6270.       int     _Optlink _freemod( unsigned long );
  6271.       char *  _Optlink _fullpath(char *, char *, size_t);
  6272.       char *  _Optlink  gcvt( double, int, char * );
  6273.       char *  _Optlink _gcvt( double, int, char * );
  6274.       int    ( _Optlink _heapmin)( void );
  6275.       char *  _Optlink  itoa( int, char *, int );
  6276.       char *  _Optlink _itoa( int, char *, int );
  6277.       int     _Optlink _loadmod( char *, unsigned long * );
  6278.       char *  _Optlink  ltoa( long, char *, int );
  6279.       char *  _Optlink _ltoa( long, char *, int );
  6280.       size_t  _Optlink _msize(void *);
  6281.       int     _Optlink  putenv( const char * );
  6282.       int     _Optlink _putenv( const char * );
  6283.       long double  _Optlink  strtold( const char *, char ** );
  6284.       long double  _Optlink _strtold( const char *, char ** );
  6285.       char *  _Optlink  ultoa( unsigned long, char *, int );
  6286.       char *  _Optlink _ultoa( unsigned long, char *, int );
  6287. #line 190
  6288.       #pragma map( ecvt    , "_ecvt"    )
  6289.       #pragma map( fcvt    , "_fcvt"    )
  6290.       #pragma map( gcvt    , "_gcvt"    )
  6291.       #pragma map( itoa    , "_itoa"    )
  6292.       #pragma map( ltoa    , "_ltoa"    )
  6293.       #pragma map( ultoa   , "_ultoa"   )
  6294.       #pragma map( putenv  , "_putenv"  )
  6295.       #pragma map( _strtold, "strtold"  )
  6296. #line 301
  6297.          int   _Optlink _beginthread( void ( * _Optlink thread )( void * ), void *, unsigned, void * );
  6298.          void  _Optlink _endthread( void );
  6299.          void **  _Optlink _threadstore( void );
  6300. #line 307
  6301.       #pragma map( atof  , "_atofieee"   )
  6302.       #pragma map( strtod, "_strtodieee" )
  6303. #line 317
  6304.          void  _Builtin __enable( void );
  6305.          void  _Builtin __disable( void );
  6306. #line 326
  6307.                int *  _Optlink _errno( void );
  6308.  
  6309.                #pragma info( none )
  6310. #line 332
  6311.                #pragma info( restore )
  6312. #line 348
  6313.                int *  _Optlink __doserrno(void);
  6314.  
  6315.                #pragma info( none )
  6316. #line 354
  6317.                #pragma info( restore )
  6318. #line 368
  6319.          extern char **  _environ;
  6320.          extern unsigned char  _osmajor;
  6321.          extern unsigned char  _osminor;
  6322.          extern unsigned char  _osmode;
  6323. #line 378
  6324.          typedef int ( __onexit_t )( void );
  6325.          typedef __onexit_t * onexit_t;
  6326. #line 390
  6327.          void            _Optlink _exit( int );
  6328.          onexit_t        _Optlink  onexit( onexit_t );
  6329.          onexit_t        _Optlink _onexit( onexit_t );
  6330. #line 395
  6331.          unsigned long  _Builtin  __lrotl(unsigned long, int);
  6332.          unsigned long  _Builtin  __lrotr(unsigned long, int);
  6333.          unsigned short _Builtin  __srotl(unsigned short, int);
  6334.          unsigned short _Builtin  __srotr(unsigned short, int);
  6335.          unsigned char  _Builtin  __crotl(unsigned char, int);
  6336.          unsigned char  _Builtin  __crotr(unsigned char, int);
  6337. #line 420
  6338.          void            _Optlink _makepath( char *, char *, char *, char *, char * );
  6339.          void            _Optlink _splitpath( char *, char *, char *, char *, char * );
  6340.          void            _Optlink _searchenv( char *, char *, char *);
  6341.          void            _Optlink  swab( char *, char *, int );
  6342.          void            _Optlink _swab( char *, char *, int );
  6343. #line 427
  6344.          #pragma map( onexit , "_onexit"  )
  6345.          #pragma map( swab   , "_swab"    )
  6346. #line 434
  6347.          int            _Optlink rpmatch(const char *);
  6348.          int            _Optlink csid(const char *);
  6349.          int            _Optlink wcsid(const wchar_t);
  6350. #line 439
  6351.          #pragma map( rpmatch, "_rpmatch" )
  6352.          #pragma map( csid   , "_csid"    )
  6353.          #pragma map( wcsid  , "_wcsid"   )
  6354. #line 468
  6355.       }
  6356. #line 474
  6357. #pragma info( none )
  6358.  
  6359.    #pragma info( restore )
  6360.  
  6361. #pragma info( restore )
  6362. #line 23 "F:\vacpp\INCLUDE\istring.inl"
  6363.   }
  6364. #line 18 "F:\vacpp\INCLUDE\ibuffer.hpp"
  6365. extern "C" {
  6366. #line 2 "F:\vacpp\INCLUDE\stddef.h"
  6367. #pragma info( none )
  6368.  
  6369.    #pragma info( none )
  6370.  
  6371. #pragma info( restore )
  6372. #line 13
  6373.       extern "C" {
  6374. #line 42
  6375.    typedef int ptrdiff_t;
  6376. #line 86
  6377.          unsigned *  _Optlink __threadid( void );
  6378. #line 109
  6379.       }
  6380. #line 115
  6381. #pragma info( none )
  6382.  
  6383.    #pragma info( restore )
  6384.  
  6385. #pragma info( restore )
  6386. #line 20 "F:\vacpp\INCLUDE\ibuffer.hpp"
  6387.   }
  6388. #line 25
  6389. #pragma pack(4)
  6390.  
  6391. class IStringTest;
  6392.  
  6393. class IBuffer : public IVBase {
  6394. public:
  6395.  
  6396. IBuffer
  6397.  *newBuffer           ( const void* p1,
  6398.                         unsigned    len1,
  6399.                         const void* p2      = 0,
  6400.                         unsigned    len2    = 0,
  6401.                         const void* p3      = 0,
  6402.                         unsigned    len3    = 0,
  6403.                         char        padChar = 0 ) const;
  6404.  
  6405. static unsigned
  6406.   checkAddition       ( unsigned addend1,
  6407.                         unsigned addend2 ),
  6408.   checkMultiplication ( unsigned factor1,
  6409.                         unsigned factor2 ),
  6410.   overflow            ( );
  6411.  
  6412. static void
  6413.   setDefaultBuffer    ( IBuffer* newDefaultBuffer );
  6414. #line 52
  6415. static IBuffer
  6416.  *defaultBuffer ( ),
  6417.  *fromContents  ( const char *pBuffer );
  6418.  
  6419. IBuffer
  6420.  *null          ( ) const;
  6421.  
  6422. unsigned
  6423.   useCount      ( ) const,
  6424.   length        ( ) const;
  6425.  
  6426. const char
  6427.  *contents      ( ) const;
  6428.  
  6429. char
  6430.  *contents      ( );
  6431.  
  6432. virtual IStringEnum::CharType
  6433.   charType      ( unsigned index ) const;
  6434.  
  6435. virtual char
  6436.  *next          ( const char *prev );
  6437.  
  6438. virtual const char
  6439.  *next          ( const char *prev ) const;
  6440. #line 79
  6441. void
  6442.   addRef    ( ),
  6443.   removeRef ( );
  6444. #line 84
  6445. typedef enum {
  6446.   equal,
  6447.   greaterThan,
  6448.   lessThan
  6449.   } Comparison;
  6450.  
  6451. virtual Comparison
  6452.   compare ( const void* p,
  6453.             unsigned    len ) const;
  6454. #line 95
  6455. virtual IBuffer
  6456.  *subString ( unsigned startPos,
  6457.               unsigned len,
  6458.               char     padCharacter ) const;
  6459. #line 101
  6460. virtual IString
  6461.   asDebugInfo ( ) const;
  6462. #line 105
  6463. virtual Boolean
  6464.   isAlphanumeric ( ) const,
  6465.   isAlphabetic   ( ) const,
  6466.   isASCII        ( ) const,
  6467.   isControl      ( ) const,
  6468.   isDigits       ( ) const,
  6469.   isGraphics     ( ) const,
  6470.   isHexDigits    ( ) const,
  6471.   isLowerCase    ( ) const,
  6472.   isPrintable    ( ) const,
  6473.   isPunctuation  ( ) const,
  6474.   isUpperCase    ( ) const,
  6475.   isWhiteSpace   ( ) const;
  6476. #line 120
  6477. virtual Boolean
  6478.   isMBCS       ( ) const,
  6479.   isDBCS       ( ) const,
  6480.   isSBCS       ( ) const,
  6481.   isValidMBCS  ( ) const,
  6482.   isValidDBCS  ( ) const,
  6483.   includesMBCS ( ) const,
  6484.   includesDBCS ( ) const,
  6485.   includesSBCS ( ) const;
  6486. #line 131
  6487. virtual unsigned
  6488.   indexOf           ( const char*        pString,
  6489.                       unsigned           len,
  6490.                       unsigned           startPos = 1 ) const,
  6491.   indexOf           ( const IStringTest& aTest,
  6492.                       unsigned           startPos = 1 ) const,
  6493.   indexOfAnyBut     ( const char*        pString,
  6494.                       unsigned           len,
  6495.                       unsigned           startPos = 1 ) const,
  6496.   indexOfAnyBut     ( const IStringTest& aTest,
  6497.                       unsigned           startPos = 1 ) const,
  6498.   indexOfAnyOf      ( const char*        pString,
  6499.                       unsigned           len,
  6500.                       unsigned           startPos = 1 ) const,
  6501.   indexOfAnyOf      ( const IStringTest& aTest,
  6502.                       unsigned           startPos = 1 ) const,
  6503.   lastIndexOf       ( const char*        pString,
  6504.                       unsigned           len,
  6505.                       unsigned           startPos = 0 ) const,
  6506.   lastIndexOf       ( const IStringTest& aTest,
  6507.                       unsigned           startPos = 0 ) const,
  6508.   lastIndexOfAnyBut ( const char*        pString,
  6509.                       unsigned           len,
  6510.                       unsigned           startPos = 0 ) const,
  6511.   lastIndexOfAnyBut ( const IStringTest& aTest,
  6512.                       unsigned           startPos = 0 ) const,
  6513.   lastIndexOfAnyOf  ( const char*        pString,
  6514.                       unsigned           len,
  6515.                       unsigned           startPos = 0 ) const,
  6516.   lastIndexOfAnyOf  ( const IStringTest& aTest,
  6517.                       unsigned           startPos = 0 ) const;
  6518. #line 164
  6519. virtual IBuffer
  6520.  *center       ( unsigned newLen,
  6521.                  char     padCharacter ),
  6522.  *change       ( const char* pSource,
  6523.                  unsigned    sourceLen,
  6524.                  const char* pTarget,
  6525.                  unsigned    targetLen,
  6526.                  unsigned    startPos,
  6527.                  unsigned    numChanges ),
  6528.  *copy         ( unsigned numCopies ),
  6529.  *insert       ( const char* pInsert,
  6530.                  unsigned    insertLen,
  6531.                  unsigned    pos,
  6532.                  char        padCharacter ),
  6533.  *leftJustify  ( unsigned newLen,
  6534.                  char     padCharacter ),
  6535.  *lowerCase    ( ),
  6536.  *overlayWith  ( const char* overlay,
  6537.                  unsigned    len,
  6538.                  unsigned    pos,
  6539.                  char        padCharacter ),
  6540.  *remove       ( unsigned startPos,
  6541.                  unsigned numChars ),
  6542.  *reverse      ( ),
  6543.  *rightJustify ( unsigned newLen,
  6544.                  char     padCharacter ),
  6545.  *strip        ( const char*            pChars,
  6546.                  unsigned               len,
  6547.                  IStringEnum::StripMode mode ),
  6548.  *strip        ( const IStringTest&     aTest,
  6549.                  IStringEnum::StripMode mode ),
  6550.  *translate    ( const char* pInputChars,
  6551.                  unsigned    inputLen,
  6552.                  const char* pOutputChars,
  6553.                  unsigned    outputLen,
  6554.                  char        padCharacter ),
  6555.  *upperCase    ( );
  6556.  
  6557. protected:
  6558.  
  6559. virtual unsigned
  6560.   startSearch          ( unsigned startPos,
  6561.                          unsigned searchLen ) const,
  6562.   startBackwardsSearch ( unsigned startPos,
  6563.                          unsigned searchLen ) const;
  6564. #line 211
  6565. virtual IBuffer
  6566.  *allocate        ( unsigned bufLength ) const;
  6567. #line 225
  6568. void
  6569.  *operator new    ( size_t   t,
  6570.                     unsigned bufLen );
  6571. void
  6572.   operator delete ( void*    p );
  6573. #line 234
  6574. static char
  6575.   dbcsTable[ 256 ];
  6576. #line 239
  6577. static IBuffer
  6578.  *initialize ( );
  6579. #line 243
  6580. virtual const char
  6581.  *className ( ) const;
  6582. #line 247
  6583.   IBuffer ( unsigned newLen );
  6584.  ~IBuffer ( );
  6585.  
  6586. private:
  6587.  
  6588. unsigned
  6589.   refs,
  6590.   len;
  6591. char
  6592.   data[1];
  6593. static IBuffer
  6594.  *nullBuffer;
  6595.  
  6596. static IBuffer
  6597.  *nullIBuffer;
  6598. };
  6599.  
  6600. #pragma pack()
  6601. #line 24 "F:\vacpp\INCLUDE\ibuffer.inl"
  6602. extern "C" {
  6603. #line 2 "F:\vacpp\INCLUDE\limits.h"
  6604. #pragma info( none )
  6605.  
  6606.    #pragma info( none )
  6607.  
  6608. #pragma info( restore )
  6609. #line 69
  6610. #pragma info( none )
  6611.  
  6612.    #pragma info( restore )
  6613.  
  6614. #pragma info( restore )
  6615. #line 26 "F:\vacpp\INCLUDE\ibuffer.inl"
  6616. }
  6617. #line 34
  6618. #pragma info(nopar)
  6619. #line 37
  6620. inline unsigned IBuffer :: checkAddition ( unsigned addend1, unsigned addend2 )
  6621.   {
  6622.   return ( addend1 < 0xffffffff - addend2 ) ? addend1 + addend2 : overflow();
  6623.   }
  6624. inline unsigned IBuffer :: checkMultiplication ( unsigned factor1, unsigned factor2 )
  6625.   {
  6626.   return ( factor1 < 0xffffffff / factor2 ) ? factor1 * factor2 : overflow();
  6627.   }
  6628.  
  6629. inline void IBuffer :: addRef ( )
  6630.   {
  6631.   refs++;
  6632.   }
  6633. inline void IBuffer :: removeRef ( )
  6634.   {
  6635. #line 55
  6636.   if ( --refs == 0 )
  6637.     delete this;
  6638.   }
  6639.  
  6640. inline unsigned IBuffer :: useCount ( ) const
  6641.   {
  6642.   return refs;
  6643.   }
  6644. inline unsigned IBuffer :: length ( ) const
  6645.   {
  6646.   return len;
  6647.   }
  6648. inline const char *IBuffer :: contents ( ) const
  6649.   {
  6650.   return data;
  6651.   }
  6652. inline char *IBuffer :: contents ( )
  6653.   {
  6654.   return data;
  6655.   }
  6656. inline IBuffer *IBuffer :: fromContents ( const char *p )
  6657.   {
  6658.   return (IBuffer*)( p - __offsetof( IBuffer, data ) );
  6659.   }
  6660.  
  6661. #pragma info(restore)
  6662. #line 29 "F:\vacpp\INCLUDE\ibuffern.inl"
  6663. inline void* IBuffer::operator new ( size_t, unsigned realSize )
  6664. {
  6665.   void *p = ::new char[ checkAddition( sizeof( IBuffer ), realSize ) ];
  6666.   return p;
  6667. }
  6668.  
  6669. inline void IBuffer::operator delete ( void *p )
  6670. {
  6671.   ::delete [] (char*)p;
  6672. }
  6673. #line 20 "F:\vacpp\INCLUDE\istrtest.hpp"
  6674. #pragma pack(4)
  6675.  
  6676. extern "C"
  6677.   {
  6678.   typedef IBase::Boolean _Optlink ICStrTestFn( int );
  6679.   }
  6680.  
  6681. class IStringTest : public IVBase {
  6682. typedef IVBase
  6683.   Inherited;
  6684.  
  6685. public:
  6686. #line 34
  6687. typedef ICStrTestFn
  6688.   CFunction;
  6689. typedef Boolean
  6690.   CPPFunction( int );
  6691. #line 40
  6692.   IStringTest ( CFunction   &cFunc );
  6693.  ~IStringTest ( );
  6694. #line 44
  6695. virtual Boolean
  6696.   test        ( int c ) const;
  6697.  
  6698. protected:
  6699.  
  6700. enum FnType {
  6701.   user,
  6702.   c,
  6703.   cpp,
  6704.   memFn,
  6705.   cMemFn
  6706.   };
  6707.  
  6708. FnType
  6709.   type;
  6710.  
  6711. union { CFunction *cFn; void *user; } data;
  6712. #line 63
  6713.   IStringTest ( FnType  type,
  6714.                 void   *userData );
  6715.  
  6716. };  
  6717.  
  6718. template < class T >
  6719. class IStringTestMemberFn : public IStringTest {
  6720. public:
  6721.  
  6722. typedef Boolean
  6723.  ( T::*ConstFn )( int ) const;
  6724. typedef Boolean
  6725.  ( T::*NonconstFn )( int );
  6726. #line 78
  6727.   IStringTestMemberFn ( const T    &object,
  6728.                         ConstFn     constFn )
  6729.     : IStringTest ( user, (void*)&object ),
  6730.       cMF         ( constFn )
  6731.     {
  6732.     }
  6733.   IStringTestMemberFn ( T          &object,
  6734.                         NonconstFn  nonconstFn )
  6735.     : IStringTest ( user, (void*)&object ),
  6736.       ncMF        ( nonconstFn )
  6737.     {
  6738.     }
  6739. #line 92
  6740. virtual Boolean
  6741.   test                ( int c ) const
  6742.     {
  6743.     if ( this->type == cMemFn )
  6744.       return ((const T*)data.user->*cMF)( c );
  6745.     else
  6746.       return ((T*)data.user->*ncMF)( c );
  6747.     }
  6748.  
  6749. private:
  6750.  
  6751. union { ConstFn cMF; NonconstFn ncMF; };
  6752.  
  6753. };
  6754.  
  6755. #pragma pack()
  6756. #line 36 "F:\vacpp\INCLUDE\istrtest.inl"
  6757. inline IStringTest :: IStringTest ( FnType typ, void *p )
  6758.   : type( typ )
  6759.   {
  6760.   data.user = p;
  6761.   }
  6762. #line 48 "F:\vacpp\INCLUDE\istring.inl"
  6763. inline IBuffer *IString :: buffer( ) const
  6764.   {
  6765. #line 53
  6766.   return IBuffer::fromContents( pBuffer );
  6767.   }
  6768. inline char *IString::defaultBuffer ( )
  6769.   {
  6770.   return ( nullBuffer ) ?
  6771.            nullBuffer
  6772.            :
  6773.            ( nullBuffer = IBuffer::defaultBuffer()->contents() );
  6774.   }
  6775. inline char *IString :: data ( ) const
  6776.   {
  6777.   return pBuffer;
  6778.   }
  6779. inline unsigned IString :: lengthOf ( const char *p )
  6780.   {
  6781.   return p ? strlen( p ) : 0;
  6782.   }
  6783. inline IString &IString :: setBuffer( IBuffer *ibuff )
  6784.   {
  6785. #line 75
  6786.   pBuffer = ibuff->contents();
  6787.   return *this;
  6788.   }
  6789. inline void IString :: setDefaultBuffer ( char *newDefaultBuffer )
  6790.   {
  6791.   nullBuffer = newDefaultBuffer;
  6792.   }
  6793. inline void IBuffer :: setDefaultBuffer ( IBuffer *newDefaultBuffer )
  6794.   {
  6795. #line 87
  6796.   if ( IBuffer::nullBuffer )
  6797.     IBuffer::nullBuffer -> removeRef();
  6798.   IBuffer::nullBuffer = newDefaultBuffer;
  6799.   IString::setDefaultBuffer( newDefaultBuffer->data );
  6800.   }
  6801.  
  6802. inline unsigned IString :: length ( ) const
  6803.   {
  6804.   return this->buffer() -> length();
  6805.   }
  6806. inline unsigned IString :: size ( ) const
  6807.   {
  6808.   return this->buffer() -> length();
  6809.   }
  6810. inline IStringEnum::CharType IString :: charType ( unsigned index ) const
  6811.   {
  6812.   return this->buffer() -> charType( index );
  6813.   }
  6814.  
  6815. inline unsigned IString :: indexOf ( const IString &aString,
  6816.                                      unsigned       startPos ) const
  6817.   {
  6818.   return this->buffer()->indexOf( aString.data(),
  6819.                                   aString.length(),
  6820.                                   startPos );
  6821.   }
  6822. inline unsigned IString :: indexOf ( const char *pString,
  6823.                                      unsigned    startPos ) const
  6824.   {
  6825.   return this->buffer()->indexOf( pString,
  6826.                                   lengthOf( pString ),
  6827.                                   startPos );
  6828.   }
  6829. inline unsigned IString :: indexOf ( const IStringTest &aTest,
  6830.                                      unsigned           startPos ) const
  6831.   {
  6832.   return this->buffer()->indexOf( aTest,
  6833.                                   startPos );
  6834.   }
  6835. inline unsigned IString :: indexOfAnyBut ( const IString &aString,
  6836.                                            unsigned       startPos ) const
  6837.   {
  6838.   return this->buffer()->indexOfAnyBut( aString.data(),
  6839.                                         aString.length(),
  6840.                                         startPos );
  6841.   }
  6842. inline unsigned IString :: indexOfAnyBut ( const char *pValidChars,
  6843.                                            unsigned    startPos ) const
  6844.   {
  6845.   return this->buffer()->indexOfAnyBut( pValidChars,
  6846.                                         lengthOf( pValidChars ),
  6847.                                         startPos );
  6848.   }
  6849. inline unsigned IString :: indexOfAnyBut ( char     validChar,
  6850.                                            unsigned startPos ) const
  6851.   {
  6852.   return this->buffer()->indexOfAnyBut( &validChar,
  6853.                                         1,
  6854.                                         startPos );
  6855.   }
  6856. inline unsigned IString :: indexOfAnyBut ( const IStringTest &aTest,
  6857.                                            unsigned           startPos ) const
  6858.   {
  6859.   return this->buffer()->indexOfAnyBut( aTest,
  6860.                                         startPos );
  6861.   }
  6862. inline unsigned IString :: indexOfAnyOf ( const IString &aString,
  6863.                                           unsigned       startPos ) const
  6864.   {
  6865.   return this->buffer()->indexOfAnyOf( aString.data(),
  6866.                                        aString.length(),
  6867.                                        startPos );
  6868.   }
  6869. inline unsigned IString :: indexOfAnyOf ( const char *pSearchChars,
  6870.                                           unsigned    startPos ) const
  6871.   {
  6872.   return this->buffer()->indexOfAnyOf( pSearchChars,
  6873.                                        lengthOf( pSearchChars ),
  6874.                                        startPos );
  6875.   }
  6876. inline unsigned IString :: indexOfAnyOf ( char     searchChar,
  6877.                                           unsigned startPos ) const
  6878.   {
  6879.   return this->buffer()->indexOfAnyOf( &searchChar,
  6880.                                        1,
  6881.                                        startPos );
  6882.   }
  6883. inline unsigned IString :: indexOfAnyOf ( const IStringTest &aTest,
  6884.                                           unsigned           startPos ) const
  6885.   {
  6886.   return this->buffer()->indexOfAnyOf( aTest,
  6887.                                        startPos );
  6888.   }
  6889. inline unsigned IString :: lastIndexOf ( const IString &aString,
  6890.                                          unsigned       startPos ) const
  6891.   {
  6892.   return this->buffer()->lastIndexOf( aString.data(),
  6893.                                       aString.length(),
  6894.                                       startPos );
  6895.   }
  6896. inline unsigned IString :: lastIndexOf ( const char *pString,
  6897.                                          unsigned    startPos ) const
  6898.   {
  6899.   return this->buffer()->lastIndexOf( pString,
  6900.                                       lengthOf( pString ),
  6901.                                       startPos );
  6902.   }
  6903. inline unsigned IString :: lastIndexOf ( const IStringTest &aTest,
  6904.                                          unsigned           startPos ) const
  6905.   {
  6906.   return this->buffer()->lastIndexOf( aTest,
  6907.                                       startPos );
  6908.   }
  6909. inline unsigned IString :: lastIndexOfAnyBut ( const IString &aString,
  6910.                                                unsigned       startPos ) const
  6911.   {
  6912.   return this->buffer()->lastIndexOfAnyBut( aString.data(),
  6913.                                             aString.length(),
  6914.                                             startPos );
  6915.   }
  6916. inline unsigned IString :: lastIndexOfAnyBut ( const char *pValidChars,
  6917.                                                unsigned    startPos ) const
  6918.   {
  6919.   return this->buffer()->lastIndexOfAnyBut( pValidChars,
  6920.                                             lengthOf( pValidChars ),
  6921.                                             startPos );
  6922.   }
  6923. inline unsigned IString :: lastIndexOfAnyBut ( char     validChar,
  6924.                                                unsigned startPos ) const
  6925.   {
  6926.   return this->buffer()->lastIndexOfAnyBut( &validChar,
  6927.                                             1,
  6928.                                             startPos );
  6929.   }
  6930. inline unsigned IString :: lastIndexOfAnyBut ( const IStringTest &aTest,
  6931.                                                unsigned           startPos ) const
  6932.   {
  6933.   return this->buffer()->lastIndexOfAnyBut( aTest,
  6934.                                            startPos );
  6935.   }
  6936. inline unsigned IString :: lastIndexOfAnyOf ( const IString &aString,
  6937.                                               unsigned       startPos ) const
  6938.   {
  6939.   return this->buffer()->lastIndexOfAnyOf( aString.data(),
  6940.                                            aString.length(),
  6941.                                            startPos );
  6942.   }
  6943. inline unsigned IString :: lastIndexOfAnyOf ( const char *pSearchChars,
  6944.                                               unsigned    startPos ) const
  6945.   {
  6946.   return this->buffer()->lastIndexOfAnyOf( pSearchChars,
  6947.                                            lengthOf( pSearchChars ),
  6948.                                            startPos );
  6949.   }
  6950. inline unsigned IString :: lastIndexOfAnyOf ( char     searchChar,
  6951.                                               unsigned startPos ) const
  6952.   {
  6953.   return this->buffer()->lastIndexOfAnyOf( &searchChar,
  6954.                                            1,
  6955.                                            startPos );
  6956.   }
  6957. inline unsigned IString :: lastIndexOfAnyOf ( const IStringTest &aTest,
  6958.                                               unsigned           startPos ) const
  6959.   {
  6960.   return this->buffer()->lastIndexOfAnyOf( aTest,
  6961.                                            startPos );
  6962.   }
  6963. inline unsigned IString :: occurrencesOf ( const IString &aString,
  6964.                                            unsigned       startPos ) const
  6965.   {
  6966.   return this->occurrencesOf( aString.data(),
  6967.                               aString.length(),
  6968.                               startPos );
  6969.   }
  6970. inline unsigned IString :: occurrencesOf ( const char *pString,
  6971.                                            unsigned    startPos ) const
  6972.   {
  6973.   return this->occurrencesOf( pString,
  6974.                               lengthOf( pString ),
  6975.                               startPos );
  6976.   }
  6977.  
  6978. inline IBase::Boolean IString :: isAlphanumeric ( ) const
  6979.   { return this->buffer()->isAlphanumeric(); }
  6980. inline IBase::Boolean IString :: isAlphabetic ( ) const
  6981.   { return this->buffer()->isAlphabetic(); }
  6982. inline IBase::Boolean IString :: isASCII ( ) const
  6983.   { return this->buffer()->isASCII(); }
  6984. inline IBase::Boolean IString :: isControl ( ) const
  6985.   { return this->buffer()->isControl(); }
  6986. inline IBase::Boolean IString :: isDigits ( ) const
  6987.   { return this->buffer()->isDigits(); }
  6988. inline IBase::Boolean IString :: isGraphics ( ) const
  6989.   { return this->buffer()->isGraphics(); }
  6990. inline IBase::Boolean IString :: isHexDigits ( ) const
  6991.   { return this->buffer()->isHexDigits(); }
  6992. inline IBase::Boolean IString :: isLowerCase ( ) const
  6993.   { return this->buffer()->isLowerCase(); }
  6994. inline IBase::Boolean IString :: isPrintable ( ) const
  6995.   { return this->buffer()->isPrintable(); }
  6996. inline IBase::Boolean IString :: isPunctuation ( ) const
  6997.   { return this->buffer()->isPunctuation(); }
  6998. inline IBase::Boolean IString :: isUpperCase ( ) const
  6999.   { return this->buffer()->isUpperCase(); }
  7000. inline IBase::Boolean IString :: isWhiteSpace ( ) const
  7001.   { return this->buffer()->isWhiteSpace(); }
  7002. inline IBase::Boolean IString :: isMBCS ( ) const
  7003.   { return this->buffer()->isMBCS(); }
  7004. inline IBase::Boolean IString :: isDBCS ( ) const
  7005.   { return this->buffer()->isDBCS(); }
  7006. inline IBase::Boolean IString :: isSBCS ( ) const
  7007.   { return this->buffer()->isSBCS(); }
  7008. inline IBase::Boolean IString :: isValidMBCS ( ) const
  7009.   { return this->buffer()->isValidMBCS(); }
  7010. inline IBase::Boolean IString :: isValidDBCS ( ) const
  7011.   { return this->buffer()->isValidDBCS(); }
  7012. inline IBase::Boolean IString :: includesMBCS ( ) const
  7013.   { return this->buffer()->includesMBCS(); }
  7014. inline IBase::Boolean IString :: includesDBCS ( ) const
  7015.   { return this->buffer()->includesDBCS(); }
  7016. inline IBase::Boolean IString :: includesSBCS ( ) const
  7017.   { return this->buffer()->includesSBCS(); }
  7018. inline IBase::Boolean IString :: isLike ( const IString &aPattern,
  7019.                                           char           zeroOrMore,
  7020.                                           char           anyChar ) const
  7021.   {
  7022.   return this->isLike( aPattern.data(),
  7023.                        aPattern.length(),
  7024.                        zeroOrMore,
  7025.                        anyChar );
  7026.   }
  7027. inline IBase::Boolean IString :: isLike ( const char *pPattern,
  7028.                                           char        zeroOrMore,
  7029.                                           char        anyChar ) const
  7030.   {
  7031.   return this->isLike( pPattern,
  7032.                        lengthOf(pPattern),
  7033.                        zeroOrMore,
  7034.                        anyChar );
  7035.   }
  7036. inline IBase::Boolean IString :: isAbbreviationFor ( const IString &aString,
  7037.                                                      unsigned       minAbbrevLength ) const
  7038.   {
  7039.   return this->isAbbrevFor( aString.data(),
  7040.                             aString.length(),
  7041.                             minAbbrevLength );
  7042.   }
  7043. inline IBase::Boolean IString :: isAbbreviationFor ( const char *pString,
  7044.                                                      unsigned    minAbbrevLength ) const
  7045.   {
  7046.   return this->isAbbrevFor( pString,
  7047.                             lengthOf( pString ),
  7048.                             minAbbrevLength );
  7049.   }
  7050. inline IBase::Boolean IString :: includes ( const IString &aString ) const
  7051.   {
  7052.   return this->indexOf( aString );
  7053.   }
  7054. inline IBase::Boolean IString :: includes ( const char *pString ) const
  7055.   {
  7056.   return this->indexOf( pString );
  7057.   }
  7058. inline IBase::Boolean IString :: includes ( char aChar ) const
  7059.   {
  7060.   return this->indexOf( aChar );
  7061.   }
  7062. inline IBase::Boolean IString :: includes ( const IStringTest &aTest ) const
  7063.   {
  7064.   return this->indexOf( aTest );
  7065.   }
  7066.  
  7067. inline IBase::Boolean operator == ( const IString &string1, const IString &string2 )
  7068.   {
  7069.   return ( string1.buffer()->compare( string2.data(),
  7070.                                      string2.length() ) == IBuffer::equal );
  7071.   }
  7072. inline IBase::Boolean operator == ( const IString &string1, const char *pString2 )
  7073.   {
  7074.   return
  7075.     ( string1.buffer()->compare( pString2,
  7076.                                  IString::lengthOf( pString2 ) )
  7077.       == IBuffer::equal );
  7078.   }
  7079. inline IBase::Boolean operator == ( const char *pString1, const IString &string2 )
  7080.   {
  7081.   return
  7082.     ( string2.buffer()->compare( pString1,
  7083.                                  IString::lengthOf( pString1 ) )
  7084.       == IBuffer::equal );
  7085.   }
  7086. inline IBase::Boolean operator != ( const IString &string1, const IString &string2 )
  7087.   {
  7088.   return !( string1 == string2 );
  7089.   }
  7090. inline IBase::Boolean operator != ( const IString &string1, const char *pString2 )
  7091.   {
  7092.   return !( string1 == pString2 );
  7093.   }
  7094. inline IBase::Boolean operator != ( const char *pString1, const IString &string2 )
  7095.   {
  7096.   return !( pString1 == string2 );
  7097.   }
  7098. inline IBase::Boolean operator >  ( const IString &string1, const IString &string2 )
  7099.   {
  7100.   return
  7101.     ( string1.buffer()->compare( string2.data(),
  7102.                                  string2.length() )
  7103.       == IBuffer::greaterThan );
  7104.   }
  7105. inline IBase::Boolean operator >  ( const IString &string1, const char *pString2 )
  7106.   {
  7107.   return
  7108.     ( string1.buffer()->compare( pString2,
  7109.                                  IString::lengthOf( pString2 ) )
  7110.       == IBuffer::greaterThan );
  7111.   }
  7112. inline IBase::Boolean operator >  ( const char *pString1, const IString &string2 )
  7113.   {
  7114.   return
  7115.     ( string2.buffer()->compare( pString1,
  7116.                                  IString::lengthOf( pString1 ) )
  7117.       == IBuffer::lessThan );
  7118.   }
  7119. inline IBase::Boolean operator >= ( const IString &string1, const IString &string2 )
  7120.   {
  7121.   return !
  7122.     ( string1.buffer()->compare( string2.data(),
  7123.                                  string2.length() )
  7124.       == IBuffer::lessThan );
  7125.   }
  7126. inline IBase::Boolean operator >= ( const IString &string1, const char *pString2 )
  7127.   {
  7128.   return !
  7129.     ( string1.buffer()->compare( pString2,
  7130.                                  IString::lengthOf( pString2 ) )
  7131.       == IBuffer::lessThan );
  7132.   }
  7133. inline IBase::Boolean operator >= ( const char *pString1, const IString &string2 )
  7134.   {
  7135.   return !
  7136.     ( string2.buffer()->compare( pString1,
  7137.                                  IString::lengthOf( pString1 ) )
  7138.       == IBuffer::greaterThan );
  7139.   }
  7140. inline IBase::Boolean operator <  ( const IString &string1, const IString &string2 )
  7141.   {
  7142.   return !( string1 >= string2 );
  7143.   }
  7144. inline IBase::Boolean operator <  ( const IString &string1, const char *pString2 )
  7145.   {
  7146.   return !( string1 >= pString2 );
  7147.   }
  7148. inline IBase::Boolean operator <  ( const char *pString1, const IString &string2 )
  7149.   {
  7150.   return !( pString1 >= string2 );
  7151.   }
  7152. inline IBase::Boolean operator <= ( const IString &string1, const IString &string2 )
  7153.   {
  7154.   return !( string1 > string2 );
  7155.   }
  7156. inline IBase::Boolean operator <= ( const IString &string1, const char *pString2 )
  7157.   {
  7158.   return !( string1 > pString2 );
  7159.   }
  7160. inline IBase::Boolean operator <= ( const char *pString1, const IString &string2 )
  7161.   {
  7162.   return !( pString1 > string2 );
  7163.   }
  7164.  
  7165. inline IString IString :: asString ( ) const
  7166.   {
  7167.   return *this;
  7168.   }
  7169. inline long int IString :: asInt ( ) const
  7170.   {
  7171.   return strtol( this->data(), 0, 10 );
  7172.   }
  7173. inline unsigned long IString :: asUnsigned ( ) const
  7174.   {
  7175.   return strtoul( this->data(), 0, 10 );
  7176.   }
  7177. inline double IString :: asDouble ( ) const
  7178.   {
  7179.   return strtod( this->data(), 0 );
  7180.   }
  7181. inline IString :: operator char* ( ) const
  7182.   {
  7183.   return this->data();
  7184.   }
  7185. inline IString :: operator unsigned char* ( ) const
  7186.   {
  7187.   return (unsigned char*) this->data();
  7188.   }
  7189. inline IString :: operator signed char* ( ) const
  7190.   {
  7191.   return (signed char*) this->data();
  7192.   }
  7193. inline IString IString :: c2b( const IString &aString )
  7194.   {
  7195.   return IString(aString).c2b();
  7196.   }
  7197. inline IString IString :: c2d( const IString &aString )
  7198.   {
  7199.   return IString(aString).c2d();
  7200.   }
  7201. inline IString IString :: c2x( const IString &aString )
  7202.   {
  7203.   return IString(aString).c2x();
  7204.   }
  7205. inline IString IString :: b2c( const IString &aString )
  7206.   {
  7207.   return IString(aString).b2c();
  7208.   }
  7209. inline IString & IString :: b2d ( )
  7210.   {
  7211.   this->b2c().c2d();
  7212.   return *this;
  7213.   }
  7214. inline IString IString :: b2d( const IString &aString )
  7215.   {
  7216.   return IString(aString).b2d();
  7217.   }
  7218. inline IString & IString :: b2x ( )
  7219.   {
  7220.   this->b2c().c2x();
  7221.   return *this;
  7222.   }
  7223. inline IString IString :: b2x( const IString &aString )
  7224.   {
  7225.   return IString(aString).b2x();
  7226.   }
  7227. inline IString IString :: d2c( const IString &aString )
  7228.   {
  7229.   return IString(aString).d2c();
  7230.   }
  7231. inline IString & IString :: d2b ( )
  7232.   {
  7233.   this->d2c().c2b();
  7234.   return *this;
  7235.   }
  7236. inline IString IString :: d2b( const IString &aString )
  7237.   {
  7238.   return IString(aString).d2b();
  7239.   }
  7240. inline IString & IString :: d2x ( )
  7241.   {
  7242.   this->d2c().c2x();
  7243.   return *this;
  7244.   }
  7245. inline IString IString :: d2x( const IString &aString )
  7246.   {
  7247.   return IString(aString).d2x();
  7248.   }
  7249. inline IString IString :: x2c( const IString &aString )
  7250.   {
  7251.   return IString(aString).x2c();
  7252.   }
  7253. inline IString & IString :: x2b ( )
  7254.   {
  7255.   this->x2c().c2b();
  7256.   return *this;
  7257.   }
  7258. inline IString IString :: x2b( const IString &aString )
  7259.   {
  7260.   return IString(aString).x2b();
  7261.   }
  7262. inline IString & IString :: x2d ( )
  7263.   {
  7264.   this->x2c().c2d();
  7265.   return *this;
  7266.   }
  7267. inline IString IString :: x2d( const IString &aString )
  7268.   {
  7269.   return IString(aString).x2d();
  7270.   }
  7271.  
  7272. inline IString & IString :: change ( const IString &aPattern,
  7273.                                      const IString &aReplacement,
  7274.                                      unsigned       startPos,
  7275.                                      unsigned       numChanges )
  7276.   {
  7277.   return this->change( aPattern.data(),
  7278.                        aPattern.length(),
  7279.                        aReplacement.data(),
  7280.                        aReplacement.length(),
  7281.                        startPos,
  7282.                        numChanges );
  7283.   }
  7284. inline IString & IString :: change ( const IString &aPattern,
  7285.                                      const char    *pReplacement,
  7286.                                      unsigned       startPos,
  7287.                                      unsigned       numChanges )
  7288.   {
  7289.   return this->change( aPattern.data(),
  7290.                        aPattern.length(),
  7291.                        pReplacement,
  7292.                        lengthOf( pReplacement ),
  7293.                        startPos,
  7294.                        numChanges );
  7295.   }
  7296. inline IString & IString :: change ( const char    *pPattern,
  7297.                                      const IString &aReplacement,
  7298.                                      unsigned       startPos,
  7299.                                      unsigned       numChanges )
  7300.   {
  7301.   return this->change( pPattern,
  7302.                        lengthOf( pPattern ),
  7303.                        aReplacement.data(),
  7304.                        aReplacement.length(),
  7305.                        startPos,
  7306.                        numChanges );
  7307.   }
  7308. inline IString & IString :: change ( const char *pPattern,
  7309.                                      const char *pReplacement,
  7310.                                      unsigned    startPos,
  7311.                                      unsigned    numChanges )
  7312.   {
  7313.   return this->change( pPattern,
  7314.                        lengthOf( pPattern ),
  7315.                        pReplacement,
  7316.                        lengthOf( pReplacement ),
  7317.                        startPos,
  7318.                        numChanges );
  7319.   }
  7320. inline IString IString :: change ( const IString &aString,
  7321.                         const IString &aPattern,
  7322.                         const char    *pReplacement,
  7323.                         unsigned       startPos,
  7324.                         unsigned       numChanges )
  7325.   {
  7326.   return IString(aString).change( aPattern,
  7327.                                   pReplacement,
  7328.                                   startPos,
  7329.                                   numChanges );
  7330.   }
  7331. inline IString IString :: change ( const IString &aString,
  7332.                         const char    *pPattern,
  7333.                         const IString &aReplacement,
  7334.                         unsigned       startPos,
  7335.                         unsigned       numChanges )
  7336.   {
  7337.   return IString(aString).change( pPattern,
  7338.                                   aReplacement,
  7339.                                   startPos,
  7340.                                   numChanges );
  7341.   }
  7342. inline IString IString :: copy ( const IString &aString,
  7343.                       unsigned       numCopies )
  7344.   {
  7345.   return IString(aString).copy( numCopies );
  7346.   }
  7347. inline IString & IString :: insert ( const IString &aString,
  7348.                                      unsigned       index,
  7349.                                      char           padCharacter )
  7350.   {
  7351.   return this->insert( aString.data(),
  7352.                        aString.length(),
  7353.                        index,
  7354.                        padCharacter );
  7355.   }
  7356. inline IString & IString :: insert ( const char *pString,
  7357.                                      unsigned    index,
  7358.                                      char        padCharacter )
  7359.   {
  7360.   return this->insert( pString,
  7361.                        lengthOf( pString ),
  7362.                        index,
  7363.                        padCharacter );
  7364.   }
  7365. inline IString IString :: insert ( const IString &aString,
  7366.                         const IString &anInsert,
  7367.                         unsigned       index,
  7368.                         char           padCharacter )
  7369.   {
  7370.   return IString(aString).insert( anInsert, index, padCharacter );
  7371.   }
  7372. inline IString IString :: insert ( const IString &aString,
  7373.                         const char    *pInsert,
  7374.                         unsigned       index,
  7375.                         char           padCharacter )
  7376.   {
  7377.   return IString(aString).insert( pInsert, index, padCharacter );
  7378.   }
  7379. inline IString IString :: leftJustify ( const IString &aString,
  7380.                              unsigned       newLength,
  7381.                              char           padCharacter )
  7382.   {
  7383.   return IString(aString).leftJustify( newLength, padCharacter );
  7384.   }
  7385. inline IString IString :: lowerCase ( const IString &aString )
  7386.   {
  7387.   return IString(aString).lowerCase();
  7388.   }
  7389. inline IString & IString :: overlayWith ( const IString &aString,
  7390.                                           unsigned       index,
  7391.                                           char           padCharacter )
  7392.   {
  7393.   return this->overlayWith( aString.data(),
  7394.                             aString.length(),
  7395.                             index,
  7396.                             padCharacter );
  7397.   }
  7398. inline IString& IString :: overlayWith ( const char *pString,
  7399.                                          unsigned    index,
  7400.                                          char        padCharacter )
  7401.    {
  7402.    return this->overlayWith( pString,
  7403.                              lengthOf( pString ),
  7404.                              index,
  7405.                              padCharacter );
  7406.    }
  7407. inline IString IString :: overlayWith ( const IString &aString,
  7408.                              const IString &anOverlay,
  7409.                              unsigned       index,
  7410.                              char           padCharacter )
  7411.   {
  7412.   return IString(aString).overlayWith( anOverlay, index, padCharacter );
  7413.   }
  7414. inline IString IString :: overlayWith ( const IString &aString,
  7415.                              const char    *pOverlay,
  7416.                              unsigned       index,
  7417.                              char           padCharacter )
  7418.   {
  7419.   return IString(aString).overlayWith( pOverlay, index, padCharacter );
  7420.   }
  7421. inline IString IString :: remove ( const IString &aString,
  7422.                                    unsigned       startPos )
  7423.   {
  7424.   return IString::remove( aString, startPos, (unsigned)0xffffffff );
  7425.   }
  7426. inline IString IString :: reverse ( const IString &aString )
  7427.   {
  7428.   return IString(aString).reverse();
  7429.   }
  7430. inline IString IString :: rightJustify ( const IString &aString,
  7431.                               unsigned       newLength,
  7432.                               char           padCharacter )
  7433.   {
  7434.   return IString(aString).rightJustify( newLength, padCharacter );
  7435.   }
  7436. inline IString & IString :: stripLeading ( )
  7437.   {
  7438.   return this->strip( IStringTest( isspace ), IStringEnum::leading );
  7439.   }
  7440. inline IString & IString :: stripTrailing ( )
  7441.   {
  7442.   return this->strip( IStringTest( isspace ), IStringEnum::trailing );
  7443.   }
  7444. inline IString & IString :: strip ( char aChar )
  7445.   {
  7446.   return this->strip( &aChar, 1, IStringEnum::both );
  7447.   }
  7448. inline IString & IString :: stripLeading ( char aChar )
  7449.   {
  7450.   return this->strip( &aChar, 1, IStringEnum::leading );
  7451.   }
  7452. inline IString & IString :: stripTrailing ( char aChar )
  7453.   {
  7454.   return this->strip( &aChar, 1, IStringEnum::trailing );
  7455.   }
  7456. inline IString & IString :: strip ( const IString &aString )
  7457.   {
  7458.   return this->strip( aString.data(), aString.length(), IStringEnum::both );
  7459.   }
  7460. inline IString & IString :: stripLeading ( const IString &aString )
  7461.   {
  7462.   return this->strip( aString.data(), aString.length(), IStringEnum::leading );
  7463.   }
  7464. inline IString & IString :: stripTrailing ( const IString &aString )
  7465.   {
  7466.   return this->strip( aString.data(), aString.length(), IStringEnum::trailing );
  7467.   }
  7468. inline IString & IString :: strip ( const char *pString )
  7469.   {
  7470.   return this->strip( pString, lengthOf( pString ), IStringEnum::both );
  7471.   }
  7472. inline IString & IString :: stripLeading ( const char *pString )
  7473.   {
  7474.   return this->strip( pString, lengthOf( pString ), IStringEnum::leading );
  7475.   }
  7476. inline IString & IString :: stripTrailing ( const char *pString )
  7477.   {
  7478.   return this->strip( pString, lengthOf( pString ), IStringEnum::trailing );
  7479.   }
  7480. inline IString & IString :: strip ( const IStringTest &aTest )
  7481.   {
  7482.   return this->strip( aTest, IStringEnum::both );
  7483.   }
  7484. inline IString & IString :: stripLeading ( const IStringTest &aTest )
  7485.   {
  7486.   return this->strip( aTest, IStringEnum::leading );
  7487.   }
  7488. inline IString & IString :: stripTrailing ( const IStringTest &aTest )
  7489.   {
  7490.   return this->strip( aTest, IStringEnum::trailing );
  7491.   }
  7492. inline IString IString :: stripBlanks ( const IString &aString )
  7493.   {
  7494.   return IString(aString).strip();
  7495.   }
  7496. inline IString IString :: strip ( const IString &aString,
  7497.                        char           aChar )
  7498.   {
  7499.   return IString(aString).strip(aChar);
  7500.   }
  7501. inline IString IString :: strip ( const IString &aString,
  7502.                        const IString &aStringOfChars )
  7503.   {
  7504.   return IString(aString).strip(aStringOfChars);
  7505.   }
  7506. inline IString IString :: strip ( const IString &aString,
  7507.                        const char    *pStringOfChars )
  7508.   {
  7509.   return IString(aString).strip(pStringOfChars);
  7510.   }
  7511. inline IString IString :: strip ( const IString     &aString,
  7512.                        const IStringTest &aTest )
  7513.   {
  7514.   return IString(aString).strip(aTest);
  7515.   }
  7516. inline IString IString :: stripLeadingBlanks ( const IString &aString )
  7517.   {
  7518.   return IString(aString).stripLeading();
  7519.   }
  7520. inline IString IString :: stripLeading ( const IString &aString,
  7521.                               char           aChar )
  7522.   {
  7523.   return IString(aString).stripLeading(aChar);
  7524.   }
  7525. inline IString IString :: stripLeading ( const IString &aString,
  7526.                               const IString &aStringOfChars )
  7527.   {
  7528.   return IString(aString).stripLeading(aStringOfChars);
  7529.   }
  7530. inline IString IString :: stripLeading ( const IString &aString,
  7531.                               const char    *pStringOfChars )
  7532.   {
  7533.   return IString(aString).stripLeading(pStringOfChars);
  7534.   }
  7535. inline IString IString :: stripLeading ( const IString     &aString,
  7536.                               const IStringTest &aTest )
  7537.   {
  7538.   return IString(aString).stripLeading(aTest);
  7539.   }
  7540. inline IString IString :: stripTrailingBlanks ( const IString &aString )
  7541.   {
  7542.   return IString(aString).stripTrailing();
  7543.   }
  7544. inline IString IString :: stripTrailing ( const IString &aString,
  7545.                                char           aChar )
  7546.   {
  7547.   return IString(aString).stripTrailing(aChar);
  7548.   }
  7549. inline IString IString :: stripTrailing ( const IString &aString,
  7550.                                const IString &aStringOfChars )
  7551.   {
  7552.   return IString(aString).stripTrailing(aStringOfChars);
  7553.   }
  7554. inline IString IString :: stripTrailing ( const IString &aString,
  7555.                                const char    *pStringOfChars )
  7556.   {
  7557.   return IString(aString).stripTrailing(pStringOfChars);
  7558.   }
  7559. inline IString IString :: stripTrailing ( const IString     &aString,
  7560.                                const IStringTest &aTest )
  7561.   {
  7562.   return IString(aString).stripTrailing(aTest);
  7563.   }
  7564. inline IString & IString :: translate ( const IString &inputChars,
  7565.                                         const IString &outputChars,
  7566.                                         char           padCharacter )
  7567.   {
  7568.   return this->translate( inputChars.data(),
  7569.                           inputChars.length(),
  7570.                           outputChars.data(),
  7571.                           outputChars.length(),
  7572.                           padCharacter );
  7573.   }
  7574. inline IString & IString :: translate ( const IString &inputChars,
  7575.                                         const char    *pOutputChars,
  7576.                                         char           padCharacter )
  7577.   {
  7578.   return this->translate( inputChars.data(),
  7579.                           inputChars.length(),
  7580.                           pOutputChars,
  7581.                           lengthOf( pOutputChars ),
  7582.                           padCharacter );
  7583.   }
  7584. inline IString & IString :: translate ( const char    *pInputChars,
  7585.                                         const IString &outputChars,
  7586.                                         char           padCharacter )
  7587.   {
  7588.   return this->translate( pInputChars,
  7589.                           lengthOf( pInputChars ),
  7590.                           outputChars.data(),
  7591.                           outputChars.length(),
  7592.                           padCharacter );
  7593.   }
  7594. inline IString & IString :: translate ( const char *pInputChars,
  7595.                                         const char *pOutputChars,
  7596.                                         char        padCharacter )
  7597.   {
  7598.   return this->translate( pInputChars,
  7599.                           lengthOf( pInputChars ),
  7600.                           pOutputChars,
  7601.                           lengthOf( pOutputChars ),
  7602.                           padCharacter );
  7603.   }
  7604. inline IString IString :: translate ( const IString &aString,
  7605.                            const IString &inputChars,
  7606.                            const IString &outputChars,
  7607.                            char           padCharacter )
  7608.   {
  7609.   return IString(aString).translate( inputChars, outputChars, padCharacter );
  7610.   }
  7611. inline IString IString :: translate ( const IString &aString,
  7612.                            const IString &inputChars,
  7613.                            const char    *pOutputChars,
  7614.                            char           padCharacter )
  7615.   {
  7616.   return IString(aString).translate( inputChars, pOutputChars, padCharacter );
  7617.   }
  7618. inline IString IString :: translate ( const IString &aString,
  7619.                            const char    *pInputChars,
  7620.                            const IString &outputChars,
  7621.                            char           padCharacter )
  7622.   {
  7623.   return IString(aString).translate( pInputChars, outputChars, padCharacter );
  7624.   }
  7625. inline IString IString :: translate ( const IString &aString,
  7626.                            const char    *pInputChars,
  7627.                            const char    *pOutputChars,
  7628.                            char           padCharacter )
  7629.   {
  7630.   return IString(aString).translate( pInputChars, pOutputChars, padCharacter );
  7631.   }
  7632.  
  7633. inline IString & IString :: removeWords ( unsigned firstWord )
  7634.   {
  7635.   return this->removeWords( firstWord, (unsigned)0xffffffff );
  7636.   }
  7637. inline IString IString :: removeWords ( const IString &aString,
  7638.                              unsigned       firstWord )
  7639.   {
  7640.   return IString(aString).removeWords( firstWord );
  7641.   }
  7642. inline IString IString :: removeWords ( const IString &aString,
  7643.                              unsigned       firstWord,
  7644.                              unsigned       numWords )
  7645.   {
  7646.   return IString(aString).removeWords( firstWord, numWords );
  7647.   }
  7648. inline unsigned IString :: indexOfPhrase ( const IString &aPhrase,
  7649.                                            unsigned       startWord ) const
  7650.    {
  7651.    return this->findPhrase ( aPhrase, startWord, charIndex );
  7652.    }
  7653. inline unsigned IString :: indexOfWord ( unsigned wordNumber ) const
  7654.   {
  7655.   return this->indexOfWord( wordNumber, 1, 0 );
  7656.   }
  7657. inline unsigned IString :: wordIndexOfPhrase( const IString &aPhrase,
  7658.                                               unsigned       startWord ) const
  7659.   {
  7660.   return this->findPhrase( aPhrase, startWord, wordIndex );
  7661.   }
  7662. inline IString IString :: space ( const IString &aString,
  7663.                        unsigned       numSpaces,
  7664.                        char           spaceChar )
  7665.   {
  7666.   return IString(aString).space( numSpaces, spaceChar );
  7667.   }
  7668. inline IString IString :: words ( unsigned firstWord ) const
  7669.   {
  7670.   return this->words( firstWord, (unsigned)0xffffffff );
  7671.   }
  7672. #line 27 "F:\vacpp\INCLUDE\inotebk.hpp"
  7673. class IResourceId;
  7674. class ITabBitmapMgr;
  7675. class INotebookData;
  7676. class INotebookCursorData;
  7677. class INotebookPageSettingsData;
  7678. class IColor;
  7679.  
  7680. #pragma pack(4)
  7681.  
  7682. class IPageHandle : public IHandle {
  7683. typedef IHandle
  7684.   Inherited;
  7685. public:
  7686.  
  7687.   IPageHandle ( Value pageId = 0 );
  7688. #line 44
  7689.   operator Value ( ) const;
  7690.  
  7691. };  
  7692. #line 49
  7693. class INotebook : public IControl {
  7694. typedef IControl
  7695.   Inherited;
  7696. public:
  7697. class Style;
  7698.  
  7699.   INotebook   ( unsigned long        windowId,
  7700.                 IWindow*             parent,
  7701.                 IWindow*             owner,
  7702.                 const IRectangle&    initial = IRectangle(),
  7703.                 const Style&         style = defaultStyle() );
  7704.  
  7705.   INotebook   ( unsigned long        windowId,
  7706.                 IWindow*             parentAndOwner );
  7707.   INotebook   ( const IWindowHandle& handle );
  7708.  
  7709. virtual
  7710.   ~INotebook ( );
  7711. #line 69
  7712. class Style : public IBitFlag{friend class INotebook;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); NegatedStyle ( const IControl::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs ); Style ( const IControl::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {}protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  7713.  
  7714. static const Style
  7715.   classDefaultStyle,
  7716.   spiralBinding,
  7717.   solidBinding,
  7718.   backPagesBottomRight,
  7719.   backPagesBottomLeft,
  7720.   backPagesTopRight,
  7721.   backPagesTopLeft,
  7722.   majorTabsRight,
  7723.   majorTabsLeft,
  7724.   majorTabsTop,
  7725.   majorTabsBottom,
  7726.   squareTabs,
  7727.   roundedTabs,
  7728.   polygonTabs,
  7729.   statusTextLeft,
  7730.   statusTextRight,
  7731.   statusTextCenter,
  7732.   tabTextLeft,
  7733.   tabTextRight,
  7734.   tabTextCenter;
  7735.  
  7736. static Style
  7737.   defaultStyle      ( );
  7738.  
  7739. static void
  7740.   setDefaultStyle   ( const Style&    style );
  7741.  
  7742. virtual unsigned long
  7743.   convertToGUIStyle ( const IBitFlag& style,
  7744.                       Boolean         extendedOnly = false ) const;
  7745. #line 104
  7746. enum TextAlignment {
  7747.   left,
  7748.   right,
  7749.   center
  7750. };
  7751.  
  7752. virtual INotebook
  7753.  &setStatusTextAlignment ( TextAlignment       alignment ),
  7754.  &setStatusText          ( const IPageHandle&  referencePage,
  7755.                            const char*         statusText ),
  7756.  &setStatusText          ( const IPageHandle&  referencePage,
  7757.                            const IResourceId&  resourceId );
  7758.  
  7759. virtual TextAlignment
  7760.   statusTextAlignment    ( ) const;
  7761. #line 121
  7762. enum TabShape {
  7763.   square,
  7764.   rounded,
  7765.   polygon
  7766. };
  7767.  
  7768. virtual INotebook
  7769.  &setTabShape         ( TabShape             tabShape ),
  7770.  &setMajorTabSize     ( const ISize&         sizeMajorTab ),
  7771.  &setMinorTabSize     ( const ISize&         sizeMinorTab );
  7772.  
  7773. virtual TabShape
  7774.   tabShape            ( ) const;
  7775.  
  7776. virtual INotebook
  7777.  &setTabTextAlignment ( TextAlignment        alignment ),
  7778.  &refreshTabs         ( ),
  7779.  &setTabText          ( const IPageHandle&   referencePage,
  7780.                         const char*          tabText ),
  7781.  &setTabText          ( const IPageHandle&   referencePage,
  7782.                         const IResourceId&   resourceId ),
  7783.  &setTabBitmap        ( const IPageHandle&   referencePage,
  7784.                         const IBitmapHandle& bitmap ),
  7785.  &setTabBitmap        ( const IPageHandle&   referencePage,
  7786.                         const IResourceId&   resourceId );
  7787.  
  7788. virtual TextAlignment
  7789.   tabTextAlignment    ( ) const;
  7790. #line 151
  7791. virtual INotebook
  7792.  &setPageButtonSize ( const ISize& sizePageButton );
  7793. #line 155
  7794. enum Orientation {
  7795.   backpagesBottomTabsRight,
  7796.   backpagesTopTabsRight,
  7797.   backpagesBottomTabsLeft,
  7798.   backpagesTopTabsLeft,
  7799.   backpagesRightTabsTop,
  7800.   backpagesLeftTabsTop,
  7801.   backpagesRightTabsBottom,
  7802.   backpagesLeftTabsBottom
  7803. };
  7804.  
  7805. virtual INotebook
  7806.  &setOrientation   ( Orientation orientation );
  7807.  
  7808. virtual Orientation
  7809.   orientation      ( ) const;
  7810. #line 173
  7811. enum Binding {
  7812.   spiral,
  7813.   solid
  7814. };
  7815.  
  7816. virtual INotebook
  7817.  &setBinding     ( Binding binding );
  7818.  
  7819. virtual Binding
  7820.   binding        ( ) const;
  7821. #line 185
  7822. virtual IColor
  7823.   backgroundColor              ( ) const,
  7824.   hiliteBackgroundColor        ( ) const,
  7825.   pageBackgroundColor          ( ) const,
  7826.   majorTabBackgroundColor      ( ) const,
  7827.   minorTabBackgroundColor      ( ) const,
  7828.   majorTabForegroundColor      ( ) const,
  7829.   minorTabForegroundColor      ( ) const;
  7830.  
  7831. virtual INotebook
  7832.  &setPageBackgroundColor       ( const IColor& color ),
  7833.  &setMajorTabBackgroundColor   ( const IColor& color ),
  7834.  &setMinorTabBackgroundColor   ( const IColor& color ),
  7835.  &setMajorTabForegroundColor   ( const IColor& color ),
  7836.  &setMinorTabForegroundColor   ( const IColor& color );
  7837. #line 202
  7838. virtual INotebook
  7839.  &resetPageBackgroundColor     ( ),
  7840.  &resetMajorTabBackgroundColor ( ),
  7841.  &resetMinorTabBackgroundColor ( ),
  7842.  &resetMajorTabForegroundColor ( ),
  7843.  &resetMinorTabForegroundColor ( );
  7844. #line 210
  7845. class PageSettings : public IVBase {
  7846. typedef IVBase
  7847.   Inherited;
  7848. friend class INotebook;
  7849. public:
  7850.  
  7851. class Attribute : public IBitFlag{friend class INotebook::PageSettings;public: class NegatedAttribute : public IBitFlag { friend class Attribute; public: NegatedAttribute operator & ( const NegatedAttribute &aFlag ) const { NegatedAttribute aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } protected: NegatedAttribute ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Attribute& operator |= ( const Attribute &aFlag ) { Attribute tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedAttribute operator ~ ( ) const { NegatedAttribute aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Attribute& operator &= ( const NegatedAttribute &aFlag ) { Attribute tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Attribute operator | ( const Attribute &aFlag ) const { Attribute aResult ( asUnsignedLong() | aFlag.asUnsignedLong(), asExtendedUnsignedLong() | aFlag.asExtendedUnsignedLong() ); return aResult; } Attribute operator & ( const NegatedAttribute &aFlag ) const { Attribute aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } unsigned long operator & ( const Attribute &aFlag ) const { unsigned long ulResult = asUnsignedLong() & aFlag.asUnsignedLong(); return ( ulResult | (asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong()) ); }protected: Attribute ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  7852. static const Attribute
  7853.   autoPageSize,
  7854.   statusTextOn,
  7855.   majorTab,
  7856.   minorTab,
  7857.   noAttribute;
  7858. #line 225
  7859.   PageSettings  ( );
  7860.   PageSettings  ( const Attribute&               attribute );
  7861.   PageSettings  ( const char*                    tabText,
  7862.                   const char*                    statusText = 0,
  7863.                   const Attribute&               pageAttribute = noAttribute );
  7864.   PageSettings  ( const IBitmapHandle&           tabBitmap,
  7865.                   const char*                    statusText = 0,
  7866.                   const Attribute&               pageAttribute = noAttribute );
  7867.   PageSettings  ( const INotebook::PageSettings& pageSettings );
  7868.  
  7869. virtual
  7870.   ~PageSettings ( );
  7871. #line 240
  7872. virtual INotebook::PageSettings
  7873.  &setStatusText     ( const char*        statusText ),
  7874.  &setStatusText     ( const IResourceId& resourceId );
  7875.  
  7876. virtual IString
  7877.   statusText        ( ) const;
  7878.  
  7879. Boolean
  7880.   isStatusTextOn    ( ) const;
  7881. #line 251
  7882. virtual INotebook::PageSettings
  7883.  &setTabText        ( const char*          tabText ),
  7884.  &setTabText        ( const IResourceId&   resourceId ),
  7885.  &setTabBitmap      ( const IBitmapHandle& bitmap ),
  7886.  &setTabBitmap      ( const IResourceId&   resourceId );
  7887.  
  7888. virtual IString
  7889.   tabText           ( ) const;
  7890.  
  7891. virtual IBitmapHandle
  7892.   tabBitmap         ( ) const;
  7893.  
  7894. Boolean
  7895.   isMajorTab        ( ) const,
  7896.   isMinorTab        ( ) const;
  7897. #line 268
  7898. virtual INotebook::PageSettings
  7899.  &setUserData       ( unsigned long userData );
  7900.  
  7901. virtual unsigned long
  7902.   userData          ( ) const;
  7903. #line 275
  7904. Boolean
  7905.   isAutoSize       ( ) const;
  7906.  
  7907. private:
  7908.  
  7909. Attribute
  7910.   pageStyle;
  7911. IBitmapHandle
  7912.   savedTabBitmap;
  7913. unsigned long
  7914.   savedUserData;
  7915. IString
  7916.   savedStatusText,
  7917.   savedTabText;
  7918.  
  7919. INotebookPageSettingsData
  7920.  *fPageSettingsData;
  7921. };  
  7922. #line 295
  7923. class Cursor : public IVBase {
  7924. typedef IVBase
  7925.   Inherited;
  7926. public :
  7927.  
  7928.   Cursor  ( const INotebook& notebook );
  7929.  
  7930. virtual
  7931.   ~Cursor ( );
  7932. #line 306
  7933. virtual Boolean
  7934.   setToFirst    ( ),
  7935.   setToNext     ( ),
  7936.   setToPrevious ( ),
  7937.   setToLast     ( ),
  7938.   isValid       ( ) const;
  7939.  
  7940. virtual void
  7941.   invalidate    ( );
  7942. #line 317
  7943. virtual IPageHandle
  7944.   first      ( ),
  7945.   next       ( ),
  7946.   previous   ( ),
  7947.   last       ( ),
  7948.   current    ( ) const;
  7949.  
  7950. void
  7951.   setCurrent ( const IPageHandle& current );
  7952. #line 328
  7953. private:
  7954.  
  7955. Cursor       ( const Cursor& cursor );
  7956. Cursor
  7957.  &operator=  ( const Cursor& cursor );
  7958. #line 335
  7959. const INotebook
  7960.  &nbCl;
  7961. unsigned long
  7962.   ulClCurrentPageId;
  7963. unsigned long
  7964.   ulClReferences;
  7965.  
  7966. INotebookCursorData
  7967.  *fCursorData;
  7968. };  
  7969. #line 348
  7970. virtual IPageHandle
  7971.   addFirstPage      ( const PageSettings& pageInfo,
  7972.                       IWindow*            pageWindow = 0 ),
  7973.   addLastPage       ( const PageSettings& pageInfo,
  7974.                       IWindow*            pageWindow = 0 ),
  7975.   addPageBefore     ( const PageSettings& pageInfo,
  7976.                       const IPageHandle&  referencePage,
  7977.                       IWindow*            pageWindow = 0 ),
  7978.   addPageAfter      ( const PageSettings& pageInfo,
  7979.                       const IPageHandle&  referencePage,
  7980.                       IWindow*            pageWindow = 0 ),
  7981.   addPageBefore     ( const PageSettings& pageInfo,
  7982.                       const Cursor&       cursor,
  7983.                       IWindow*            pageWindow = 0 ),
  7984.   addPageAfter      ( const PageSettings& pageInfo,
  7985.                       const Cursor&       cursor,
  7986.                       IWindow*            pageWindow = 0 );
  7987. #line 367
  7988. virtual INotebook
  7989.  &removePage        ( const IPageHandle&  page ),
  7990.  &removePage        ( const Cursor&       cursor ),
  7991.  &removeAllPages    ( ),
  7992.  &removeTabSection  ( const IPageHandle&  page ),
  7993.  &removeTabSection  ( const Cursor&       cursor );
  7994. #line 375
  7995. virtual INotebook
  7996.  &turnToPage        ( const IPageHandle&  page ),
  7997.  &turnToPage        ( const Cursor&       cursor );
  7998.  
  7999. virtual IPageHandle
  8000.   topPage           ( ) const,
  8001.   firstPage         ( ) const,
  8002.   lastPage          ( ) const,
  8003.   nextPage          ( const IPageHandle&  referencePage ) const,
  8004.   previousPage      ( const IPageHandle&  referencePage ) const;
  8005. #line 387
  8006. PageSettings
  8007.   pageSettings      ( const Cursor&       cursor ) const,
  8008.   pageSettings      ( const IPageHandle&  page ) const;
  8009. #line 392
  8010. virtual INotebook
  8011.  &setUserData       ( const IPageHandle& referencePage,
  8012.                       unsigned long      userData );
  8013. #line 397
  8014. virtual IWindow
  8015.  *window            ( const Cursor&      cursor ) const,
  8016.  *window            ( const IPageHandle& page ) const;
  8017.  
  8018. virtual INotebook
  8019.  &setWindow         ( const Cursor&      cursor,
  8020.                             IWindow*     pageWindow = 0 ),
  8021.  &setWindow         ( const IPageHandle& referencePage,
  8022.                             IWindow*     pageWindow = 0 );
  8023. #line 409
  8024. virtual ISize
  8025.   pageSize        ( ) const,
  8026.   notebookSize    ( const IPageHandle& page ) const;
  8027.  
  8028. virtual unsigned long
  8029.   totalPages      ( ) const,
  8030.   pagesToMajorTab ( const IPageHandle& page ) const,
  8031.   pagesToMajorTab ( const Cursor&      cursor ) const,
  8032.   pagesToMinorTab ( const IPageHandle& page ) const,
  8033.   pagesToMinorTab ( const Cursor&      cursor ) const,
  8034.   pagesToEnd      ( const IPageHandle& page ) const,
  8035.   pagesToEnd      ( const Cursor&      cursor ) const;
  8036.  
  8037. virtual Boolean
  8038.   isEmpty         ( ) const;
  8039. #line 426
  8040. static INotificationId const
  8041.   pageBackgroundColorId,
  8042.   majorTabBackgroundColorId,
  8043.   minorTabBackgroundColorId,
  8044.   majorTabForegroundColorId,
  8045.   minorTabForegroundColorId,
  8046.   orientationId;
  8047.  
  8048. virtual IWindow
  8049.  &enableNotification ( Boolean enable=true );
  8050.  
  8051. protected:
  8052.  
  8053. virtual ISize
  8054.   calcMinimumSize ( ) const;
  8055. #line 443
  8056. private:
  8057.  
  8058. INotebook   ( const INotebook& notebook );
  8059. INotebook
  8060.  &operator= ( const INotebook& notebook );
  8061. #line 450
  8062. INotebookData
  8063.  *fNotebookData;
  8064.  
  8065. static Style
  8066.   currentDefaultStyle;
  8067.  
  8068. unsigned long
  8069.   queryPage      ( void* mp1, void* mp2 ) const,
  8070.   insertPage     ( void* mp1, void* mp2 );
  8071. Boolean
  8072.   deletePage     ( void* mp1, void* mp2 );
  8073. short
  8074.   queryPageCount ( void* mp1, void* mp2 ) const;
  8075. IPageHandle
  8076.   insertPageInfo ( const PageSettings& pageInfo,
  8077.                    const IPageHandle&  referencePage,
  8078.                    IWindow*            window,
  8079.                    unsigned long       fPosition );
  8080. #line 470
  8081. ITabBitmapMgr
  8082.  *bmClTabBitmapMgr;
  8083. unsigned long
  8084.   ulClValidate;
  8085.  
  8086. friend class INotebook::Cursor;
  8087. friend class INotebookHandler;
  8088.  
  8089. class clrFlags : public IBitFlag{friend class INotebook;public: class NegatedclrFlags : public IBitFlag { friend class clrFlags; public: NegatedclrFlags operator & ( const NegatedclrFlags &aFlag ) const { NegatedclrFlags aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } protected: NegatedclrFlags ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; clrFlags& operator |= ( const clrFlags &aFlag ) { clrFlags tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedclrFlags operator ~ ( ) const { NegatedclrFlags aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } clrFlags& operator &= ( const NegatedclrFlags &aFlag ) { clrFlags tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } clrFlags operator | ( const clrFlags &aFlag ) const { clrFlags aResult ( asUnsignedLong() | aFlag.asUnsignedLong(), asExtendedUnsignedLong() | aFlag.asExtendedUnsignedLong() ); return aResult; } clrFlags operator & ( const NegatedclrFlags &aFlag ) const { clrFlags aResult ( asUnsignedLong() & aFlag.asUnsignedLong(), asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong() ); return aResult; } unsigned long operator & ( const clrFlags &aFlag ) const { unsigned long ulResult = asUnsignedLong() & aFlag.asUnsignedLong(); return ( ulResult | (asExtendedUnsignedLong() & aFlag.asExtendedUnsignedLong()) ); }protected: clrFlags ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  8090. static const clrFlags
  8091.   bgnPageColor,
  8092.   bgnMajorColor,
  8093.   bgnMinorColor,
  8094.   fgnMajorColor,
  8095.   fgnMinorColor;
  8096.  
  8097. INotebook::clrFlags
  8098.   colorFlags;
  8099.  
  8100. void setNotebookColors   ( unsigned long color,
  8101.                            unsigned long colorArea );
  8102. void storeNotebookColors ( unsigned long color,
  8103.                            unsigned long
  8104.                            colorArea );
  8105. IColor UnsignedLongAsRGB ( unsigned long color ) const;
  8106.  
  8107. struct NotebookColors
  8108. {
  8109.   unsigned long  pageBackgroundColor;
  8110.   unsigned long  majorTabBackgroundColor;
  8111.   unsigned long  minorTabBackgroundColor;
  8112.   unsigned long  majorTabForegroundColor;
  8113.   unsigned long  minorTabForegroundColor;
  8114. };
  8115. NotebookColors
  8116.  *pnotebookColors;
  8117. #line 509
  8118. public:
  8119. enum ColorArea {
  8120.   pageBackground,
  8121.   majorTabBackground,
  8122.   majorTabForeground,
  8123.   minorTabBackground,
  8124.   minorTabForeground,
  8125.   notebookWindowBackground,
  8126.   notebookOutline,
  8127.   statusLineText,
  8128.   selectionCursor
  8129. };
  8130. virtual INotebook
  8131.  &setColor        ( ColorArea      area,
  8132.                     const IColor&  color );
  8133. virtual IColor
  8134.   color           ( ColorArea      area ) const;
  8135.  
  8136. virtual IColor
  8137.   backgroundPageColor   () const,
  8138.   backgroundMajorColor  () const,
  8139.   backgroundMinorColor  () const,
  8140.   foregroundMajorColor  () const,
  8141.   foregroundMinorColor  () const;
  8142.  
  8143. virtual INotebook
  8144.  &setBackgroundPageColor  (const IColor& color),
  8145.  &setBackgroundMajorColor (const IColor& color),
  8146.  &setBackgroundMinorColor (const IColor& color),
  8147.  &setForegroundMajorColor (const IColor& color),
  8148.  &setForegroundMinorColor (const IColor& color);
  8149. #line 542
  8150. };  
  8151.  
  8152. inline INotebook::Style operator | ( const INotebook::Style &lhs, const INotebook::Style &rhs ){ INotebook::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline INotebook::Style operator & ( const INotebook::Style &lhs, const INotebook::Style::NegatedStyle &rhs ){ INotebook::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline INotebook::Style::NegatedStyle operator & ( const INotebook::Style::NegatedStyle &lhs, const INotebook::Style::NegatedStyle &rhs ){ INotebook::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline INotebook::Style operator & ( const INotebook::Style::NegatedStyle &lhs, const INotebook::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const INotebook::Style &lhs, const INotebook::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const INotebook::Style &lhs, const INotebook::Style &rhs );
  8153.  
  8154. #pragma pack()
  8155. #line 28 "F:\vacpp\INCLUDE\inotebk.inl"
  8156. inline void  INotebook::setDefaultStyle ( const INotebook::Style& style )
  8157. {
  8158.   currentDefaultStyle = style;
  8159. }
  8160.  
  8161. inline IPageHandle :: operator Value ( ) const
  8162. {
  8163.   return this->handle;
  8164. }
  8165. #line 25 "F:\vacpp\INCLUDE\ireslock.hpp"
  8166. class IResourceLock;
  8167. class IPrivateResource;
  8168. class ISharedResource;
  8169.  
  8170. #pragma pack(4)
  8171.  
  8172. class IResource : public IVBase {
  8173. typedef IVBase
  8174.   Inherited;
  8175. public:
  8176.  
  8177.   IResource( );
  8178. virtual
  8179.  ~IResource( );
  8180. #line 41
  8181. virtual IResource
  8182.  &lock           ( long timeOut = -1 ),
  8183.  &unlock         ( );
  8184.  
  8185. protected:
  8186.  
  8187. virtual ISemaphoreHandle
  8188.  &handle        ( )  = 0;
  8189.  
  8190. private:
  8191.  
  8192.   IResource    ( const IResource& resource );
  8193. IResource
  8194.  &operator=    ( const IResource& resource );
  8195. #line 57
  8196. IResourceLock
  8197.  *reslockGate;
  8198.  
  8199. long
  8200.   lClReferenceCount;
  8201.  
  8202. friend class IResourceLock;
  8203. friend class IPrivateResource;
  8204. friend class ISharedResource;
  8205. };  
  8206. #line 69
  8207. class IPrivateResource : public IResource
  8208. {
  8209. typedef IResource
  8210.   Inherited;
  8211. public:
  8212.  
  8213.   IPrivateResource   ( );
  8214. virtual
  8215.  ~IPrivateResource   ( );
  8216.  
  8217. protected:
  8218.  
  8219. ISemaphoreHandle
  8220.  &handle               ( );
  8221.  
  8222. private:
  8223.  
  8224.   IPrivateResource    ( const IPrivateResource& privateResource );
  8225. IPrivateResource
  8226.  &operator=           ( const IPrivateResource& privateResource );
  8227. #line 91
  8228. ISemaphoreHandle
  8229.   resourceHandleCl;
  8230.  
  8231. friend class IResourceLock;
  8232. };  
  8233. #line 98
  8234. class ISharedResource : public IResource
  8235. {
  8236. typedef IResource
  8237.   Inherited;
  8238. public:
  8239.  
  8240.   ISharedResource   ( const char* keyName );
  8241. virtual
  8242.  ~ISharedResource   ( );
  8243. #line 109
  8244. IString
  8245.   keyName           ( ) const;
  8246.  
  8247. protected:
  8248.  
  8249. ISemaphoreHandle
  8250.  &handle              ( );
  8251.  
  8252. private:
  8253.  
  8254.   ISharedResource    ( const ISharedResource& sharedResource );
  8255. ISharedResource
  8256.  &operator=          ( const ISharedResource& sharedResource );
  8257. #line 124
  8258. ISemaphoreHandle
  8259.   resourceHandleCl;
  8260.  
  8261. IString
  8262.   keyNameCl;
  8263.  
  8264. friend class IResourceLock;
  8265. };  
  8266. #line 134
  8267. class IResourceLock : public IVBase
  8268. {
  8269. typedef IVBase
  8270.   Inherited;
  8271. public:
  8272. #line 141
  8273.   IResourceLock   ( IResource& resource,
  8274.                     long       timeOut = -1 );
  8275. virtual
  8276.   ~IResourceLock  ( );
  8277.  
  8278. protected:
  8279.  
  8280. virtual IResourceLock
  8281.  &setLock        ( long timeOut = -1 ),
  8282.  &clearLock      ( );
  8283.  
  8284. private:
  8285.  
  8286.   IResourceLock ( const IResourceLock& resourceLock );
  8287. IResourceLock
  8288.  &operator=     ( const IResourceLock& resourceLock );
  8289. #line 159
  8290. IResource
  8291.  *presCl;
  8292.  
  8293. friend class IResource;
  8294. };  
  8295.  
  8296. #pragma pack()
  8297. #line 20 "F:\vacpp\INCLUDE\itrace.hpp"
  8298. #pragma pack(4)
  8299.  
  8300. class IString;
  8301.  
  8302. class ITrace : public IVBase {
  8303. typedef IVBase
  8304.   Inherited;
  8305.  
  8306. friend class ITraceSetup;
  8307.  
  8308. public:
  8309.  
  8310.   ITrace                   ( const char* traceName =0,
  8311.                              long        lineNumber=0 );
  8312.  
  8313.  ~ITrace                   ( );
  8314. #line 38
  8315. static void
  8316.   write                    ( const IString& text ),
  8317.   write                    ( const char*    text );
  8318.  
  8319. enum Destination           {
  8320.   queue,
  8321.   standardError,
  8322.   standardOutput
  8323.   };
  8324.  
  8325. static ITrace::Destination
  8326.   traceDestination         ( );
  8327.  
  8328. static void
  8329.   writeToQueue             ( ),
  8330.   writeToStandardError     ( ),
  8331.   writeToStandardOutput    ( );
  8332. #line 57
  8333. static void
  8334.   enableTrace              ( ),
  8335.   disableTrace             ( );
  8336.  
  8337. static Boolean
  8338.   isTraceEnabled           ( );
  8339. #line 65
  8340. static void
  8341.   enableWriteLineNumber    ( ),
  8342.   disableWriteLineNumber   ( ),
  8343.   enableWritePrefix        ( ),
  8344.   disableWritePrefix       ( );
  8345.  
  8346. static Boolean
  8347.   isWriteLineNumberEnabled ( ),
  8348.   isWritePrefixEnabled     ( );
  8349. #line 76
  8350. protected:
  8351.  
  8352. static unsigned long
  8353.   threadId                 ( );
  8354. #line 82
  8355. static void
  8356.   writeString              ( char*          text   ),
  8357.   writeFormattedString     ( const IString& string,
  8358.                              char*          marker );
  8359.  
  8360. private:
  8361. #line 90
  8362. enum State {
  8363.   uninitialized=1,
  8364.   on=2,
  8365.   writeLineNumber=4,
  8366.   writePrefix=8
  8367.   };
  8368. char
  8369.  *pszClTraceName;
  8370. static int
  8371.   iClState;
  8372. static ITrace::Destination
  8373.   iClTraceLocation;
  8374. static unsigned long
  8375.   remainingStack ( );
  8376. };
  8377. #line 146
  8378. #pragma pack()
  8379. #line 32 "F:\vacpp\INCLUDE\itrace.inl"
  8380. inline void ITrace :: enableWriteLineNumber()
  8381. {
  8382.   ITrace::iClState |= ITrace::writeLineNumber;
  8383. }
  8384.  
  8385. inline void ITrace :: disableWriteLineNumber()
  8386. {
  8387.   ITrace::iClState &= ~ITrace::writeLineNumber;
  8388. }
  8389. #line 43
  8390. inline IBase::Boolean ITrace :: isWriteLineNumberEnabled()
  8391. {
  8392.   return (ITrace::iClState & ITrace::writeLineNumber);
  8393. }
  8394. #line 49
  8395. inline void ITrace::enableTrace()
  8396. {
  8397.   ITrace::iClState |= ITrace::on;
  8398. }
  8399.  
  8400. inline void ITrace::disableTrace()
  8401. {
  8402.   ITrace::iClState &= ~ITrace::on;
  8403. }
  8404.  
  8405. inline IBase::Boolean ITrace::isTraceEnabled()
  8406. {
  8407.   return (ITrace::iClState & ITrace::on);
  8408. }
  8409.  
  8410. inline void ITrace::writeToQueue()
  8411. {
  8412.  ITrace::iClTraceLocation = ITrace::queue;
  8413. }
  8414. #line 70
  8415. inline void ITrace::writeToStandardError()
  8416. {
  8417.    ITrace::iClTraceLocation = ITrace::standardError;
  8418. }
  8419.  
  8420. inline void ITrace::writeToStandardOutput()
  8421. {
  8422.    ITrace::iClTraceLocation = ITrace::standardOutput;
  8423. }
  8424.  
  8425. inline ITrace::Destination ITrace::traceDestination()
  8426. {
  8427.    return(ITrace::iClTraceLocation);
  8428. }
  8429.  
  8430. inline void ITrace::enableWritePrefix()
  8431. {
  8432.   ITrace::iClState |= ITrace::writePrefix;
  8433. }
  8434.  
  8435. inline void ITrace::disableWritePrefix()
  8436. {
  8437.   ITrace::iClState &= ~ITrace::writePrefix;
  8438. }
  8439.  
  8440. inline IBase::Boolean ITrace::isWritePrefixEnabled()
  8441. {
  8442.   return (ITrace::iClState & ITrace::writePrefix);
  8443. }
  8444. #line 30 "F:\vacpp\INCLUDE\ireslock.inl"
  8445. inline IString ISharedResource :: keyName() const
  8446.   { return keyNameCl; }
  8447. #line 22 "F:\vacpp\INCLUDE\iobslist.hpp"
  8448. class IObserver;
  8449. class IObserverDataList;
  8450. class INotificationEvent;
  8451. class IObserverPtr;
  8452. class IObserverListData;
  8453.  
  8454. #pragma pack(4)
  8455.  
  8456. class IObserverList : public IVBase {
  8457. typedef IVBase
  8458.   Inherited;
  8459.  
  8460. public:
  8461. #line 37
  8462.   IObserverList     ( );
  8463.  
  8464. virtual
  8465.  ~IObserverList     ( );
  8466.  
  8467. class Cursor : public IVBase {
  8468. public:
  8469.  
  8470.   Cursor ( IObserverList& observerList );
  8471. virtual
  8472.  ~Cursor ( );
  8473. #line 50
  8474. virtual Boolean
  8475.   setToFirst      ( ),
  8476.   setToNext       ( ),
  8477.   setToLast       ( ),
  8478.   setToPrevious   ( ),
  8479.   isValid         ( ) const;
  8480.  
  8481. virtual void
  8482.   invalidate      ( );
  8483.  
  8484. private:
  8485.  
  8486. friend class IObserverList;
  8487. void
  8488.  *fCursor;
  8489. };  
  8490.  
  8491. friend class IObserverList::Cursor;
  8492. #line 70
  8493. IObserverList
  8494.  ¬ifyObservers ( const INotificationEvent& event );
  8495. #line 74
  8496. virtual Boolean
  8497.   add             ( IObserver&       observer,
  8498.                     void*            userData );
  8499. virtual IObserver
  8500.  &elementAt       ( const Cursor&    cursor ) const;
  8501. virtual IObserverList
  8502.  &removeAt        ( const Cursor&    cursor ),
  8503.  &remove          ( const IObserver& observer ),
  8504.  &removeAll       ( );
  8505. unsigned long
  8506.  numberOfElements ( ) const;
  8507.  
  8508. Boolean
  8509.  isEmpty          ( ) const;
  8510. #line 90
  8511. private:
  8512.  
  8513. IObserverDataList
  8514.   *fObserverDataList;
  8515. static IPrivateResource
  8516.   gObsKey;
  8517. static IPrivateResource
  8518.   &observerKey();
  8519. unsigned long
  8520.   fNumObservers;
  8521. IObserverPtr
  8522.   *fpObserverArray;
  8523. void removeFromObsArray(const IObserver& observer);
  8524. void removeFromObsArray(IObserver& observer);
  8525. IObserverListData
  8526.   *fObserverListData;
  8527.  
  8528. IObserverList ( const IObserverList& obsList );
  8529. IObserverList
  8530.    &operator= (const IObserverList& obsList);
  8531. };  
  8532.  
  8533. #pragma pack()
  8534. #line 22 "F:\vacpp\INCLUDE\istdntfy.hpp"
  8535. class IObserverList;
  8536. class IObserver;
  8537. class INotificationEvent;
  8538.  
  8539. #pragma pack(4)
  8540.  
  8541. class IStandardNotifier : public INotifier {
  8542. typedef INotifier
  8543.   Inherited;
  8544.  
  8545. public:
  8546.  
  8547.   IStandardNotifier  ( );
  8548.   IStandardNotifier  ( const IStandardNotifier& copy );
  8549. IStandardNotifier
  8550.  &operator=          ( const IStandardNotifier& aStandardNotifier );
  8551.  
  8552. virtual
  8553.  ~IStandardNotifier  ( );
  8554. #line 43
  8555. virtual IStandardNotifier
  8556.  &enableNotification       ( Boolean enable = true ),
  8557.  &disableNotification      ( );
  8558.  
  8559. virtual Boolean
  8560.   isEnabledForNotification ( ) const;
  8561. #line 51
  8562. virtual IStandardNotifier
  8563.  ¬ifyObservers          ( const INotificationEvent& anEvent );
  8564. #line 55
  8565. static INotificationId const
  8566.   deleteId;
  8567.  
  8568. protected:
  8569.  
  8570. virtual IStandardNotifier
  8571.  &addObserver           ( IObserver&        observer,
  8572.                           const IEventData& userData = IEventData(0) ),
  8573.  &removeObserver        ( IObserver&  observer ),
  8574.  &removeAllObservers    ( );
  8575.  
  8576. virtual IObserverList
  8577.  &observerList          ( ) const;
  8578. #line 70
  8579. virtual IStandardNotifier
  8580.   ¬ifyObservers      ( const INotificationId& nId );
  8581.  
  8582. private:
  8583.  
  8584. IObserverList
  8585.   *observers;
  8586. Boolean
  8587.   enabled;
  8588. };  
  8589.  
  8590. #pragma pack()
  8591. #line 35 "F:\vacpp\INCLUDE\ivbnbkpg.hpp"
  8592.        #pragma library("CPPOOV3.LIB")
  8593. #line 50
  8594. #pragma pack(4)
  8595. #line 55
  8596. class IVBNotebookPage : public IStandardNotifier {
  8597. public:
  8598. #line 61
  8599.   IVBNotebookPage (INotebook * parent,
  8600.                    const INotebook::PageSettings::Attribute & attribute,
  8601.                    IWindow * pageWindow = 0);
  8602. virtual
  8603.  ~IVBNotebookPage();
  8604.  
  8605. virtual IVBNotebookPage
  8606.  &setStatusText   (const char* statusText),
  8607.  &setStatusText   (const IResourceId&   resourceId),
  8608.  &setTabText      (const char* tabText),
  8609.  &setTabText      (const IResourceId& resourceId),
  8610.  &setTabBitmap    (const IBitmapHandle& bitmap),
  8611.  &setTabBitmap    (const IResourceId& resourceId),
  8612.  &setWindow       (IWindow* window = 0);
  8613.  
  8614. virtual IString
  8615.   statusText      () const,
  8616.   tabText         () const;
  8617.  
  8618. virtual IBitmapHandle
  8619.   tabBitmap       () const;
  8620.  
  8621. virtual IWindow
  8622.  *window          () const;
  8623.  
  8624. virtual const IWindow
  8625.  *notebook        () const;
  8626.  
  8627. virtual IPageHandle
  8628.    pageHandle     () const;
  8629.  
  8630. private:
  8631. #line 96
  8632. INotebook * parentNB;
  8633. IPageHandle pgHandle;
  8634. };    
  8635. #line 103
  8636. #pragma pack()
  8637. #line 20 "F:\vacpp\INCLUDE\itextctl.hpp"
  8638. #pragma pack(4)
  8639.  
  8640. class IResourceId;
  8641. class ISize;
  8642. class IString;
  8643. class ITextControlData;
  8644.  
  8645. class ITextControl : public IControl {
  8646. typedef IControl
  8647.   Inherited;
  8648. public:
  8649.  
  8650. virtual
  8651.  ~ITextControl           ( );
  8652. #line 36
  8653. virtual ITextControl
  8654.  &setText                ( const char* text ),
  8655.  &setText                ( const IResourceId& text );
  8656.  
  8657. virtual IString
  8658.   text                   ( ) const;
  8659.  
  8660. virtual unsigned long
  8661.   textLength             ( ) const;
  8662. #line 47
  8663. static Boolean
  8664.   clipboardHasTextFormat ( );
  8665. #line 51
  8666. virtual ISize
  8667.   displaySize            ( const char* text = 0 ) const;
  8668. #line 55
  8669. virtual ITextControl
  8670.  &setLayoutDistorted     ( unsigned long layoutAttributeOn,
  8671.                            unsigned long layoutAttributeOff );
  8672. #line 60
  8673. static INotificationId const
  8674.   textId;
  8675.  
  8676. protected:
  8677.   ITextControl           ( );
  8678.  
  8679. private:
  8680.  
  8681.   ITextControl           ( const ITextControl& textControl );
  8682. ITextControl
  8683.  &operator=              ( const ITextControl& textControl );
  8684. #line 73
  8685. friend class ITextControlNotifyHandler;
  8686.  
  8687. Boolean
  8688.   fromSetText ( ) const;
  8689.  
  8690. ITextControlData
  8691.  *fTextControlData;
  8692. };  
  8693.  
  8694. #pragma pack()
  8695. #line 21 "F:\vacpp\INCLUDE\ientryfd.hpp"
  8696. class IRange;
  8697. class ISize;
  8698. class IString;
  8699. class IResourceId;
  8700. class IColor;
  8701. class IEntryFieldData;
  8702.  
  8703. #pragma pack(4)
  8704.  
  8705. class IEntryField : public ITextControl {
  8706. typedef ITextControl
  8707.   Inherited;
  8708.  
  8709. public:
  8710. class Style;
  8711.  
  8712.   IEntryField  ( unsigned long        id,
  8713.                  IWindow*             parent,
  8714.                  IWindow*             owner,
  8715.                  const IRectangle&    initial = IRectangle(),
  8716.                  const Style&         style = defaultStyle() );
  8717.  
  8718.   IEntryField  ( unsigned long        id,
  8719.                  IWindow*             parent );
  8720.  
  8721.   IEntryField  ( const IWindowHandle& handle );
  8722.  
  8723. virtual
  8724.  ~IEntryField  ( );
  8725. #line 52
  8726. class Style : public IBitFlag{friend class IEntryField;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); NegatedStyle ( const IControl::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs ); Style ( const IControl::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {}protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  8727.  
  8728. static const Style
  8729.   classDefaultStyle,
  8730.   autoScroll,
  8731.   margin,
  8732.   readOnly,
  8733.   unreadable,
  8734.   leftAlign,
  8735.   centerAlign,
  8736.   rightAlign;
  8737. static const Style
  8738.   autoTab,
  8739.   command,
  8740.   anyData,
  8741.   sbcsData,
  8742.   dbcsData,
  8743.   mixedData;
  8744.  
  8745. static Style
  8746.   defaultStyle      ( );
  8747.  
  8748. static void
  8749.   setDefaultStyle   ( const Style&    style );
  8750.  
  8751. virtual unsigned long
  8752.   convertToGUIStyle ( const IBitFlag& style,
  8753.                       Boolean         extendedOnly = false ) const;
  8754. #line 82
  8755. enum Alignment {
  8756.   left,
  8757.   center,
  8758.   right
  8759. };
  8760.  
  8761. enum CharType {
  8762.   sbcs,
  8763.   dbcs,
  8764.   any,
  8765.   mixed
  8766. };
  8767. #line 96
  8768. Alignment
  8769.   alignment          ( ) const;
  8770.  
  8771. CharType
  8772.   charType           ( ) const;
  8773.  
  8774. virtual IEntryField
  8775.  &enableCommand      ( Boolean   enable=true ),
  8776.  &disableCommand     ( ),
  8777.  &enableAutoTab      ( Boolean   enable=true ),
  8778.  &disableAutoTab     ( ),
  8779.  
  8780.  &setAlignment       ( Alignment alignment ),
  8781.  
  8782.  &setCharType        ( CharType  type ),
  8783.  &enableAutoScroll   ( Boolean   enable=true ),
  8784.  &disableAutoScroll  ( );
  8785.  
  8786. virtual IEntryField
  8787.  &enableMargin       ( Boolean   enable=true ),
  8788.  &disableMargin      ( );
  8789.  
  8790. Boolean
  8791.   isCommand          ( ) const,
  8792.   isAutoTab          ( ) const,
  8793.   isAutoScroll       ( ) const,
  8794.   isMargin           ( ) const;
  8795. #line 125
  8796. virtual IEntryField
  8797.  &cut        ( unsigned long timestamp=0 ),
  8798.  ©       ( unsigned long timestamp=0 ),
  8799.  &paste      ( ),
  8800.  &clear      ( unsigned long timestamp=0 ),
  8801.  &discard    ( ),
  8802.  &removeAll  ( );
  8803. #line 134
  8804. virtual IEntryField
  8805.  &disable  ( ),
  8806.  &enable   ( Boolean enable=true );
  8807. #line 139
  8808. virtual IEntryField
  8809.  &enableInsertMode   ( Boolean insert=true ),
  8810.  &disableInsertMode  ( );
  8811.  
  8812. Boolean
  8813.   isInsertMode       ( ) const;
  8814. #line 147
  8815. virtual IEntryField
  8816.  &enableDataUpdate   ( Boolean update=true ),
  8817.  &disableDataUpdate  ( );
  8818.  
  8819. Boolean
  8820.   isWriteable        ( ) const;
  8821. #line 155
  8822. virtual IEntryField
  8823.  &setLimit  ( unsigned long      textLimit ),
  8824.  &setLimit  ( const IResourceId& textLimit );
  8825.  
  8826. unsigned long
  8827.   limit     ( ) const;
  8828. #line 163
  8829. static const long end;
  8830.  
  8831. virtual IEntryField
  8832.  &selectRange    ( const IRange& range = IRange(0,end),
  8833.                    unsigned long timestamp = 0 );
  8834.  
  8835. IRange
  8836.   selectedRange ( ) const;
  8837.  
  8838. IString
  8839.   selectedText  ( ) const;
  8840.  
  8841. unsigned long
  8842.   selectedTextLength ( ) const;
  8843.  
  8844. virtual IEntryField
  8845.  &setCursorPosition( unsigned long newCursorPos );
  8846.  
  8847. unsigned long
  8848.   cursorPosition ( ) const;
  8849. #line 185
  8850. virtual IEntryField
  8851.   &setLeftIndex ( unsigned long index );
  8852.  
  8853. unsigned long
  8854.   leftIndex    ( ) const;
  8855. #line 192
  8856. Boolean
  8857.   hasChanged      ( ) const,
  8858.   isEmpty         ( ) const,
  8859.   hasSelectedText ( ) const;
  8860.  
  8861. virtual IEntryField
  8862.   &setChangedFlag ( Boolean changeFlag = true );
  8863. #line 201
  8864. virtual IColor
  8865.   foregroundColor ( ) const,
  8866.   backgroundColor ( ) const;
  8867. #line 207
  8868. static INotificationId const
  8869.   insertModeId,
  8870.   dataUpdateId,
  8871.   limitId,
  8872.   characterTypeId;
  8873. #line 214
  8874. virtual IEntryField
  8875.  &enableNotification ( Boolean enable=true );
  8876. #line 219
  8877. protected:
  8878.  
  8879. virtual ISize
  8880.   calcMinimumSize ( ) const;
  8881. #line 227
  8882. virtual IEntryField
  8883.  &setStyle ( unsigned long style );
  8884. #line 231
  8885.   IEntryField ( );
  8886. #line 234
  8887. private:
  8888.  
  8889.   IEntryField  ( const IEntryField& entryField );
  8890. IEntryField
  8891.  &operator=    ( const IEntryField& entryField );
  8892. #line 241
  8893. friend class IEntryFieldNotifyHandler;
  8894.  
  8895. IRange
  8896.   getCursorInfo ( ) const;
  8897.  
  8898. void
  8899.   setCursorInfo ( const IRange &range );
  8900.  
  8901. static Style
  8902.   currentDefaultStyle;
  8903.  
  8904. enum ReadStatus {
  8905.   doesntMatter,
  8906.   wasInput,
  8907.   wasRead,
  8908.   wasInputButReset,
  8909.   wasReadButReset
  8910. };
  8911.  
  8912. ReadStatus
  8913.   eReadStatus;
  8914.  
  8915. Boolean
  8916.   queryInsMode;
  8917.  
  8918. IEntryFieldData
  8919.  *fEntryFieldData;
  8920. #line 271
  8921. public:
  8922. enum ColorArea {
  8923.   foreground,
  8924.   background,
  8925.   disabledForeground,
  8926.   highlightForeground,
  8927.   border
  8928. };
  8929.  
  8930. IEntryField
  8931.   &setColor ( ColorArea value, const IColor& color );
  8932.  
  8933. IColor
  8934.   color     ( ColorArea value ) const;
  8935.  
  8936. Boolean
  8937.   isReadOnly         ( ) const;
  8938.  
  8939. };  
  8940.  
  8941. inline IEntryField::Style operator | ( const IEntryField::Style &lhs, const IEntryField::Style &rhs ){ IEntryField::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline IEntryField::Style operator & ( const IEntryField::Style &lhs, const IEntryField::Style::NegatedStyle &rhs ){ IEntryField::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IEntryField::Style::NegatedStyle operator & ( const IEntryField::Style::NegatedStyle &lhs, const IEntryField::Style::NegatedStyle &rhs ){ IEntryField::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IEntryField::Style operator & ( const IEntryField::Style::NegatedStyle &lhs, const IEntryField::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const IEntryField::Style &lhs, const IEntryField::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const IEntryField::Style &lhs, const IEntryField::Style &rhs );
  8942.  
  8943. #pragma pack()
  8944. #line 20 "F:\vacpp\INCLUDE\ibutton.hpp"
  8945. class IColor;
  8946. class IButtonData;
  8947.  
  8948. #pragma pack(4)
  8949.  
  8950. class IButton : public ITextControl {
  8951. typedef ITextControl
  8952.   Inherited;
  8953. public:
  8954.  
  8955. virtual
  8956.  ~IButton ( );
  8957. #line 34
  8958. class Style : public IBitFlag{friend class IButton;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); NegatedStyle ( const IControl::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs ); Style ( const IControl::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {}protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  8959.  
  8960. static const Style
  8961.   noPointerFocus;
  8962. #line 40
  8963. virtual IButton
  8964.  &enableMouseClickFocus  ( Boolean enable = true ),
  8965.  &disableMouseClickFocus ( );
  8966. Boolean
  8967.   allowsMouseClickFocus  ( ) const;
  8968. #line 47
  8969. Boolean
  8970.   isHighlighted ( ) const;
  8971.  
  8972. virtual IButton
  8973.  &highlight     ( Boolean highlight = true ),
  8974.  &unhighlight   ( );
  8975. #line 55
  8976. virtual IButton
  8977.  &click         ( );
  8978. #line 59
  8979. virtual IColor
  8980.   foregroundColor         ( ) const,
  8981.   backgroundColor         ( ) const,
  8982.   disabledForegroundColor ( ) const,
  8983.   hiliteForegroundColor   ( ) const,
  8984.   hiliteBackgroundColor   ( ) const;
  8985. #line 67
  8986. static INotificationId const
  8987.   buttonClickId;
  8988. #line 71
  8989. virtual IButton
  8990.   &enableNotification (Boolean enable = true);
  8991. #line 75
  8992. virtual IButton
  8993.  &setText       ( const char* text ),
  8994.  &setText       ( const IResourceId& text );
  8995.  
  8996. protected:
  8997. #line 82
  8998.   IButton ( );
  8999.  
  9000. private:
  9001.  
  9002.   IButton       ( const IButton& );
  9003. IButton
  9004.  &operator=     ( const IButton& );
  9005. #line 91
  9006. IButtonData
  9007.  *fButtonData;
  9008.  
  9009. public:
  9010. #line 97
  9011. enum ColorArea {
  9012.   foreground,
  9013.   background,
  9014.   disabledForeground,
  9015.   highlightForeground,
  9016.   border
  9017. };
  9018. IButton
  9019.  &setColor      ( ColorArea value, const IColor& color );
  9020. IColor
  9021.   color         ( ColorArea value ) const;
  9022.  
  9023. };   
  9024.  
  9025. inline IButton::Style operator | ( const IButton::Style &lhs, const IButton::Style &rhs ){ IButton::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline IButton::Style operator & ( const IButton::Style &lhs, const IButton::Style::NegatedStyle &rhs ){ IButton::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IButton::Style::NegatedStyle operator & ( const IButton::Style::NegatedStyle &lhs, const IButton::Style::NegatedStyle &rhs ){ IButton::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IButton::Style operator & ( const IButton::Style::NegatedStyle &lhs, const IButton::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const IButton::Style &lhs, const IButton::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const IButton::Style &lhs, const IButton::Style &rhs );
  9026.  
  9027. #pragma pack()
  9028. #line 21 "F:\vacpp\INCLUDE\ipushbut.hpp"
  9029. class ISize;
  9030. class IWindowHandle;
  9031. class IPushButtonData;
  9032.  
  9033. #pragma pack(4)
  9034.  
  9035. class IPushButton : public IButton  {
  9036. typedef IButton
  9037.   Inherited;
  9038. public:
  9039.  
  9040. class Style;
  9041. #line 35
  9042.   IPushButton ( unsigned long id,
  9043.                 IWindow* parent,
  9044.                 IWindow* owner,
  9045.                 const IRectangle& initial= IRectangle(),
  9046.                 const Style& style = defaultStyle() );
  9047.  
  9048.   IPushButton ( unsigned long id,
  9049.                 IWindow*      parent );
  9050.  
  9051.   IPushButton ( const IWindowHandle& handle );
  9052.  
  9053. virtual
  9054.  ~IPushButton ( );
  9055. #line 54
  9056. class Style : public IBitFlag{friend class IPushButton;public: class NegatedStyle : public IBitFlag { friend class Style; public: NegatedStyle ( const IWindow::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline NegatedStyle operator & ( const NegatedStyle &lhs, const NegatedStyle &rhs ); friend inline Style operator & ( const NegatedStyle &lhs, const Style &rhs ); NegatedStyle ( const IControl::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} NegatedStyle ( const IButton::Style::NegatedStyle &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} protected: NegatedStyle ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {} }; Style& operator |= ( const Style &aFlag ) { Style tmpFlag = *this | aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } NegatedStyle operator ~ ( ) const { NegatedStyle aResult ( ~asUnsignedLong(), ~asExtendedUnsignedLong() ); return aResult; } Style& operator &= ( const NegatedStyle &aFlag ) { Style tmpFlag = *this & aFlag; this->setValue ( tmpFlag.asUnsignedLong(), tmpFlag.asExtendedUnsignedLong() ); return *this; } Style ( const IWindow::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} friend inline Style operator | ( const Style &lhs, const Style &rhs ); friend inline Style operator & ( const Style &lhs, const NegatedStyle &rhs ); Style ( const IControl::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {} Style ( const IButton::Style &aFlag ) : IBitFlag ( aFlag.asUnsignedLong(), aFlag.asExtendedUnsignedLong() ) {}protected: Style ( unsigned long val, unsigned long extVal=0 ) : IBitFlag ( val, extVal ) {}};
  9057.  
  9058. static const Style
  9059.   classDefaultStyle,
  9060.   help,
  9061.   systemCommand,
  9062.   defaultButton,
  9063.   noBorder;
  9064.  
  9065. static Style
  9066.   defaultStyle      ( );
  9067.  
  9068. static void
  9069.   setDefaultStyle   ( const Style&    style );
  9070.  
  9071. virtual unsigned long
  9072.   convertToGUIStyle ( const IBitFlag& style,
  9073.                       Boolean         extendedOnly = false ) const;
  9074. #line 74
  9075. Boolean
  9076.   isDefault            ( ) const,
  9077.   isHelp               ( ) const,
  9078.   isSystemCommand      ( ) const,
  9079.   hasBorder            ( ) const;
  9080.  
  9081. virtual IPushButton
  9082.  &enableDefault        ( Boolean enable = true ),
  9083.  &disableDefault       ( ),
  9084.  &enableHelp           ( Boolean enable = true ),
  9085.  &disableHelp          ( ),
  9086.  &enableSystemCommand  ( Boolean enable = true ),
  9087.  &disableSystemCommand ( ),
  9088.  &addBorder            ( Boolean add    = true ),
  9089.  &removeBorder         ( );
  9090.  
  9091. protected:
  9092. #line 95
  9093. virtual ISize
  9094.   calcMinimumSize      ( ) const;
  9095. #line 100
  9096. private:
  9097.  
  9098. static Style
  9099.   currentDefaultStyle;
  9100.  
  9101. IPushButtonData
  9102.  *fPushButtonData;
  9103. #line 110
  9104.   IPushButton          ( const IPushButton& );
  9105. IPushButton
  9106.  &operator=            ( const IPushButton& );
  9107. #line 116
  9108. public:
  9109.  
  9110. virtual IPushButton
  9111.  &enableBorder         ( Boolean add=true ),
  9112.  &disableBorder        ( );
  9113. Boolean
  9114.   isBorder             ( ) const;
  9115. #line 125
  9116. };   
  9117.  
  9118. inline IPushButton::Style operator | ( const IPushButton::Style &lhs, const IPushButton::Style &rhs ){ IPushButton::Style aResult ( lhs.asUnsignedLong() | rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() | rhs.asExtendedUnsignedLong() ); return aResult;}inline IPushButton::Style operator & ( const IPushButton::Style &lhs, const IPushButton::Style::NegatedStyle &rhs ){ IPushButton::Style aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IPushButton::Style::NegatedStyle operator & ( const IPushButton::Style::NegatedStyle &lhs, const IPushButton::Style::NegatedStyle &rhs ){ IPushButton::Style::NegatedStyle aResult ( lhs.asUnsignedLong() & rhs.asUnsignedLong(), lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong() ); return aResult;}inline IPushButton::Style operator & ( const IPushButton::Style::NegatedStyle &lhs, const IPushButton::Style &rhs ){ return rhs & lhs;}inline unsigned long operator & ( const IPushButton::Style &lhs, const IPushButton::Style &rhs ){ unsigned long ulResult = lhs.asUnsignedLong() & rhs.asUnsignedLong(); return ( ulResult | (lhs.asExtendedUnsignedLong() & rhs.asExtendedUnsignedLong()) );} inline unsigned long operator & ( const IPushButton::Style &lhs, const IPushButton::Style &rhs );
  9119.  
  9120. #pragma pack()
  9121. #line 14 "PgHndler.hpp"
  9122. class APageHandler;
  9123. #line 26
  9124. #pragma pack(4)
  9125. #line 31
  9126. class APageHandler : public IStandardNotifier {
  9127. public:
  9128. #line 36
  9129.    APageHandler();
  9130.  
  9131.    virtual  ~APageHandler();
  9132. #line 43
  9133.    virtual APageHandler & initializePart();
  9134. #line 48
  9135.    static const INotificationId readyId;
  9136.  
  9137. protected:
  9138. #line 54
  9139.    Boolean makeConnections();
  9140.  
  9141. private:
  9142. #line 3 "PgHndler.hpv"
  9143. public:
  9144.   virtual int previousPageNumber() const;
  9145.   virtual APageHandler& setPreviousPageNumber(int aPreviousPageNumber);
  9146.   virtual int currentPageNumber() const;
  9147.   virtual APageHandler& setCurrentPageNumber(int aCurrentPageNumber);
  9148.   APageHandler& handleFor(INotebook* notebk);
  9149.   APageHandler& stopHandleFor(INotebook* notebk);
  9150.  
  9151.   static INotificationId previousPageNumberId;
  9152.   static INotificationId currentPageNumberId;
  9153.   static INotificationId selectedPage1Id;
  9154.   static INotificationId selectedPage2Id;
  9155.   static INotificationId selectedPage3Id;
  9156.  
  9157. private:
  9158.   int iPreviousPageNumber;
  9159.   int iCurrentPageNumber;
  9160. #line 34
  9161. protected:
  9162. #line 37
  9163.    class PageHandler : public IPageHandler  {
  9164.      public:
  9165.        void setOuterPgHandler(APageHandler * nvPageHdler) {
  9166.         outerPgHandler = nvPageHdler;
  9167.         }
  9168.      protected:
  9169.        virtual Boolean select( IPageSelectEvent & event);
  9170.      private:
  9171.        APageHandler* outerPgHandler;
  9172.    };
  9173.  
  9174. private:
  9175.   PageHandler nbPageHandler;
  9176. #line 59 "PgHndler.hpp"
  9177. };    
  9178. #line 65
  9179. #pragma pack()
  9180. #line 23 "F:\vacpp\INCLUDE\inotifev.hpp"
  9181. class INotificationEventData;
  9182.  
  9183. #pragma pack(4)
  9184.  
  9185. class INotificationEvent : public IBase {
  9186. typedef IBase
  9187.   Inherited;
  9188. public:
  9189. #line 33
  9190.   INotificationEvent  ( const INotificationId&   identifier,
  9191.                         INotifier&               notifier,
  9192.                         Boolean                  notifierAttrChanged=true,
  9193.                         const IEventData&        eventData=IEventData(),
  9194.                         const IEventData&        observerData=IEventData() );
  9195.  
  9196.   INotificationEvent  ( const INotificationEvent& event );
  9197.  
  9198. INotificationEvent
  9199.  &operator=           ( const INotificationEvent& event );
  9200.  
  9201.  ~INotificationEvent ( );
  9202. #line 47
  9203. INotificationEvent
  9204.  &setNotifierAttrChanged  ( Boolean           notifierAttrchanged=true ),
  9205.  &setEventData            ( const IEventData& eventData ),
  9206.  &setObserverData         ( const IEventData& observerData );
  9207.  
  9208. INotificationId
  9209.   notificationId          ( ) const;
  9210. INotifier
  9211.  ¬ifier                ( ) const;
  9212. Boolean
  9213.   hasNotifierAttrChanged  ( ) const;
  9214. IEventData
  9215.   eventData               ( ) const,
  9216.   observerData            ( ) const;
  9217.  
  9218. private:
  9219.  
  9220. INotificationId
  9221.   fEvtId;
  9222. INotifier
  9223.  *fEvtNotifier;
  9224. Boolean
  9225.  fAttrChanged;
  9226. IEventData
  9227.  fEvtData,
  9228.  fObsData;
  9229. INotificationEventData
  9230.  *fExtendedNotificationData;
  9231. };  
  9232.  
  9233. #pragma pack()
  9234. #line 28 "F:\vacpp\INCLUDE\inotifev.inl"
  9235. inline INotificationEvent& INotificationEvent::setEventData( const IEventData& eventData )
  9236. {
  9237.   this->fEvtData = eventData;
  9238.   return *this;
  9239. }
  9240.  
  9241. inline INotificationEvent& INotificationEvent::setObserverData( const IEventData& observerData)
  9242. {
  9243.   this->fObsData = observerData;
  9244.   return *this;
  9245. }
  9246.  
  9247. inline INotificationEvent& INotificationEvent::setNotifierAttrChanged(
  9248.                                                        Boolean changed)
  9249. {
  9250.   this->fAttrChanged = changed;
  9251.   return *this;
  9252. }
  9253. #line 48
  9254. inline INotificationId INotificationEvent::notificationId ( ) const
  9255. {
  9256.   return this->fEvtId;
  9257. }
  9258.  
  9259. inline INotifier& INotificationEvent::notifier ( ) const
  9260. {
  9261.   return *(this->fEvtNotifier);
  9262. }
  9263.  
  9264. inline IEventData INotificationEvent::eventData( ) const
  9265. {
  9266.   return this->fEvtData;
  9267. }
  9268.  
  9269. inline IEventData INotificationEvent::observerData( ) const
  9270. {
  9271.   return this->fObsData;
  9272. }
  9273.  
  9274. inline IBase::Boolean INotificationEvent::hasNotifierAttrChanged( ) const
  9275. {
  9276.   return this->fAttrChanged;
  9277. }
  9278. #line 21 "F:\vacpp\INCLUDE\iobservr.hpp"
  9279. #pragma pack(4)
  9280.  
  9281. class INotificationEvent;
  9282. class INotifier;
  9283. class IObserverData;
  9284.  
  9285. class IObserver : public IVBase {
  9286. typedef IVBase
  9287.   Inherited;
  9288. public:
  9289.  
  9290. virtual
  9291.  ~IObserver ( );
  9292. #line 36
  9293. virtual IObserver
  9294.  &handleNotificationsFor       ( INotifier&        notifier,
  9295.                                  const IEventData& userData = IEventData() ),
  9296.  &stopHandlingNotificationsFor ( INotifier&        notifier );
  9297. #line 42
  9298. protected:
  9299.  
  9300. virtual IObserver
  9301.  &dispatchNotificationEvent  ( const INotificationEvent& event )=0;
  9302. #line 48
  9303.   IObserver ( );
  9304.  
  9305. private:
  9306.  
  9307. friend class INotifier;
  9308. friend class IObserverList;
  9309.  
  9310. IObserverData
  9311.  *fObserverData;
  9312. };  
  9313.  
  9314. #pragma pack()
  9315. #line 14 "test.hpp"
  9316. class test;
  9317. #line 20
  9318. class ICanvas;
  9319. class INotebook;
  9320. class IVBNotebookPage;
  9321. class IEntryField;
  9322. class IPushButton;
  9323. class APageHandler;
  9324. #line 34
  9325. class testConn0;
  9326. class testConn2;
  9327. class testConn4;
  9328. class testConn5;
  9329. class testConn7;
  9330. #line 45
  9331. #pragma pack(4)
  9332. #line 50
  9333. class test : public IFrameWindow {
  9334. public:
  9335. #line 55
  9336.    test(
  9337.       unsigned long id = 15000,
  9338.       IWindow* parent = IWindow::desktopWindow(),
  9339.       IWindow* owner = 0,
  9340.       const IRectangle& rect = defaultFramingSpec(),
  9341.       const IFrameWindow::Style& style = IFrameWindow::defaultStyle ( ),
  9342.       const char* title = defaultTitle());
  9343.  
  9344.    virtual  ~test();
  9345. #line 68
  9346.    static const IRectangle defaultFramingSpec();
  9347.    static IString defaultTitle();
  9348.    virtual test & initializePart();
  9349.    test * getFrameWindow() { return this; };
  9350. #line 76
  9351.    static const INotificationId readyId;
  9352.  
  9353. protected:
  9354. #line 82
  9355.    Boolean makeConnections();
  9356.  
  9357. private:
  9358. #line 88
  9359.    ICanvas * iCanvas;
  9360.    INotebook * iNotebook1;
  9361.    IVBNotebookPage * iVBNotebookPage;
  9362.    ICanvas * iCanvas1;
  9363.    IVBNotebookPage * iVBNotebookPage1;
  9364.    ICanvas * iCanvas2;
  9365.    IVBNotebookPage * iVBNotebookPage2;
  9366.    ICanvas * iCanvas3;
  9367.    IEntryField * iEntryField1;
  9368.    IPushButton * iPushButton1;
  9369.    IPushButton * iPushButton2;
  9370.    IEntryField * iEntryField2;
  9371.    APageHandler * iAPageHandler1;
  9372.    testConn0 * conn0;
  9373.    testConn2 * conn2;
  9374.    testConn4 * conn4;
  9375.    testConn5 * conn5;
  9376.    testConn7 * conn7;
  9377.    static unsigned long partWindowId;
  9378. #line 109
  9379. };    
  9380. #line 115
  9381. #pragma pack()
  9382. #line 75 "test.cpp"
  9383. class testConn0 : public IObserver, public IStandardNotifier {
  9384. public:
  9385.    virtual  ~testConn0(){};
  9386. #line 82
  9387.    void initialize(IPushButton * aSource, APageHandler * aTarget)
  9388.       {source = aSource; target = aTarget; enableNotification(); };
  9389.    testConn0 & setNotebk(INotebook * aSelf) {iNotebk = aSelf; return *this;};
  9390.  
  9391. protected:
  9392. #line 90
  9393.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  9394.       {
  9395.       if (anEvent.notificationId() == IPushButton::buttonClickId)
  9396.          {
  9397.          ;
  9398.          ;
  9399.          try {target->handleFor(iNotebk);}
  9400.          catch (IException& exc) {};
  9401.          }
  9402.       return(*this);
  9403.       };
  9404.  
  9405. private:
  9406. #line 106
  9407.    IPushButton * source;
  9408.    APageHandler * target;
  9409.    INotebook * iNotebk;
  9410. #line 111
  9411. };    
  9412. #line 117
  9413. class testConn2 : public IObserver, public IStandardNotifier {
  9414. public:
  9415.    virtual  ~testConn2(){};
  9416. #line 124
  9417.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  9418.       {source = aSource; target = aTarget; enableNotification(); };
  9419.    testConn2 & setNewValue(APageHandler * aSelf) {iNewValue = aSelf; return *this;};
  9420.  
  9421. protected:
  9422. #line 132
  9423.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  9424.       {
  9425.       if (anEvent.notificationId() == APageHandler::selectedPage1Id)
  9426.          {
  9427.          ;
  9428.          ;
  9429.          try {target->setText(IString(iNewValue->currentPageNumber()));}
  9430.          catch (IException& exc) {};
  9431.          }
  9432.       return(*this);
  9433.       };
  9434.  
  9435. private:
  9436. #line 148
  9437.    APageHandler * source;
  9438.    IEntryField * target;
  9439.    APageHandler * iNewValue;
  9440. #line 153
  9441. };    
  9442. #line 159
  9443. class testConn4 : public IObserver {
  9444. public:
  9445.    virtual  ~testConn4(){};
  9446. #line 166
  9447.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  9448.       {source = aSource; target = aTarget; aligning = false; };
  9449.    void setSource()
  9450.       {
  9451.       if (aligning==false) {
  9452.          ;
  9453.          ;
  9454.          ;
  9455.          aligning = true;
  9456.          try {source->setPreviousPageNumber(target->text().asInt());}
  9457.          catch (IException& exc) {};
  9458.          aligning = false;
  9459.          }
  9460.       };
  9461.    void setTarget()
  9462.       {
  9463.       if (aligning==false) {
  9464.          ;
  9465.          ;
  9466.          ;
  9467.          aligning = true;
  9468.          try {target->setText(IString(source->previousPageNumber()));}
  9469.          catch (IException& exc) {};
  9470.          aligning = false;
  9471.          }
  9472.       };
  9473.  
  9474. protected:
  9475. #line 197
  9476.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  9477.       {
  9478.       if (anEvent.notificationId() == 0) setTarget();
  9479.       if ((anEvent.notificationId() == APageHandler::previousPageNumberId) && (source == &anEvent.notifier()))
  9480.          setTarget();   
  9481.       else
  9482.       if ((anEvent.notificationId() == IEntryField::textId) && (target == &anEvent.notifier()))
  9483.          setSource();   
  9484.       return(*this);
  9485.       };
  9486.  
  9487. private:
  9488. #line 212
  9489.    APageHandler * source;
  9490.    IEntryField * target;
  9491.    Boolean aligning;
  9492. #line 217
  9493. };    
  9494. #line 223
  9495. class testConn5 : public IObserver, public IStandardNotifier {
  9496. public:
  9497.    virtual  ~testConn5(){};
  9498. #line 230
  9499.    void initialize(APageHandler * aSource, IEntryField * aTarget)
  9500.       {source = aSource; target = aTarget; enableNotification(); };
  9501.    testConn5 & setNewValue(APageHandler * aSelf) {iNewValue = aSelf; return *this;};
  9502.  
  9503. protected:
  9504. #line 238
  9505.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  9506.       {
  9507.       if (anEvent.notificationId() == APageHandler::selectedPage2Id)
  9508.          {
  9509.          ;
  9510.          ;
  9511.          try {target->setText(IString(iNewValue->currentPageNumber()));}
  9512.          catch (IException& exc) {};
  9513.          }
  9514.       return(*this);
  9515.       };
  9516.  
  9517. private:
  9518. #line 254
  9519.    APageHandler * source;
  9520.    IEntryField * target;
  9521.    APageHandler * iNewValue;
  9522. #line 259
  9523. };    
  9524. #line 265
  9525. class testConn7 : public IObserver, public IStandardNotifier {
  9526. public:
  9527.    virtual  ~testConn7(){};
  9528. #line 272
  9529.    void initialize(IPushButton * aSource, APageHandler * aTarget)
  9530.       {source = aSource; target = aTarget; enableNotification(); };
  9531.    testConn7 & setNotebk(INotebook * aSelf) {iNotebk = aSelf; return *this;};
  9532.  
  9533. protected:
  9534. #line 280
  9535.    virtual IObserver & dispatchNotificationEvent(const INotificationEvent & anEvent)
  9536.       {
  9537.       if (anEvent.notificationId() == IPushButton::buttonClickId)
  9538.          {
  9539.          ;
  9540.          ;
  9541.          try {target->stopHandleFor(iNotebk);}
  9542.          catch (IException& exc) {};
  9543.          }
  9544.       return(*this);
  9545.       };
  9546.  
  9547. private:
  9548. #line 296
  9549.    IPushButton * source;
  9550.    APageHandler * target;
  9551.    INotebook * iNotebk;
  9552. #line 301
  9553. };    
  9554. #line 304
  9555. #pragma export (test::readyId)
  9556. const INotificationId test::readyId = "test::readyId";
  9557.  
  9558. #pragma export (test::partWindowId)
  9559. unsigned long test::partWindowId = 0;
  9560. #line 313
  9561. #pragma export (test::defaultFramingSpec())
  9562. const IRectangle test::defaultFramingSpec()
  9563. {
  9564.    return(IRectangle(IPoint(30, IWindow::desktopWindow()->size().height() - 30 - 384),ISize(512, 384)));
  9565. }
  9566. #line 323
  9567. #pragma export (test::defaultTitle())
  9568. IString test::defaultTitle()
  9569. {
  9570.    return("FrameWindow");
  9571. }
  9572. #line 333
  9573. #pragma export (test::test(unsigned long, IWindow*, IWindow*, const IRectangle&, const IFrameWindow::Style&, const char*))
  9574. test::test(
  9575.       unsigned long id, 
  9576.       IWindow* parent, 
  9577.       IWindow* owner, 
  9578.       const IRectangle& rect, 
  9579.       const IFrameWindow::Style& style, 
  9580.       const char* title)
  9581.    : IFrameWindow((partWindowId) ? partWindowId : id, parent, owner, rect, style, title)
  9582. {
  9583.    partWindowId = (partWindowId) ? partWindowId : id;
  9584.    iCanvas = new ICanvas(
  9585.       (0x8008), 
  9586.       this, 
  9587.       this, 
  9588.       IRectangle());
  9589.    iNotebook1 = new INotebook(
  9590.       partWindowId+1, 
  9591.       iCanvas, 
  9592.       iCanvas, 
  9593.       IRectangle(IPoint(18,104),ISize(438, 220)));
  9594.    iCanvas1 = new ICanvas(
  9595.       partWindowId+2, 
  9596.       iNotebook1, 
  9597.       iNotebook1, 
  9598.       IRectangle());
  9599.    iVBNotebookPage = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas1);
  9600.    iCanvas2 = new ICanvas(
  9601.       partWindowId+3, 
  9602.       iNotebook1, 
  9603.       iNotebook1, 
  9604.       IRectangle());
  9605.    iVBNotebookPage1 = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas2);
  9606.    iCanvas3 = new ICanvas(
  9607.       partWindowId+4, 
  9608.       iNotebook1, 
  9609.       iNotebook1, 
  9610.       IRectangle());
  9611.    iVBNotebookPage2 = new IVBNotebookPage(iNotebook1, INotebook::PageSettings::majorTab | INotebook::PageSettings::autoPageSize, iCanvas3);
  9612.    iEntryField1 = new IEntryField(
  9613.       partWindowId+5, 
  9614.       iCanvas, 
  9615.       iCanvas, 
  9616.       IRectangle(IPoint(42,71),ISize(161, 26)));
  9617.    iPushButton1 = new IPushButton(
  9618.       partWindowId+6, 
  9619.       iCanvas, 
  9620.       iCanvas, 
  9621.       IRectangle(IPoint(97,19),ISize(124, 34)));
  9622.    iPushButton2 = new IPushButton(
  9623.       partWindowId+7, 
  9624.       iCanvas, 
  9625.       iCanvas, 
  9626.       IRectangle(IPoint(271,15),ISize(121, 34)));
  9627.    iEntryField2 = new IEntryField(
  9628.       partWindowId+8, 
  9629.       iCanvas, 
  9630.       iCanvas, 
  9631.       IRectangle(IPoint(328,70),ISize(148, 27)));
  9632.    iAPageHandler1 = new APageHandler();
  9633.  
  9634.    conn0 = new testConn0();
  9635.    conn2 = new testConn2();
  9636.    conn4 = new testConn4();
  9637.    conn5 = new testConn5();
  9638.    conn7 = new testConn7();
  9639.  
  9640.    this->setFocus();
  9641.    this->setClient(iCanvas);
  9642.    iVBNotebookPage->setTabText("Tab1");
  9643.    iCanvas1->setMinimumSize(ISize(100, 100));
  9644.    iVBNotebookPage1->setTabText("Tab2");
  9645.    iCanvas2->setMinimumSize(ISize(100, 100));
  9646.    iVBNotebookPage2->setTabText("Tab3");
  9647.    iCanvas3->setMinimumSize(ISize(100, 100));
  9648.    iPushButton1->setText("start handle");
  9649.    iPushButton2->setText("stop handle");
  9650. }      
  9651. #line 416
  9652. #pragma export (test::~test())
  9653. test::~test()
  9654. {
  9655.    conn0->stopHandlingNotificationsFor(*iPushButton1);
  9656.    conn2->stopHandlingNotificationsFor(*iAPageHandler1);
  9657.    conn4->stopHandlingNotificationsFor(*iAPageHandler1);
  9658.    conn4->stopHandlingNotificationsFor(*iEntryField2);
  9659.    conn5->stopHandlingNotificationsFor(*iAPageHandler1);
  9660.    conn7->stopHandlingNotificationsFor(*iPushButton2);
  9661.  
  9662.    delete conn0;
  9663.    delete conn2;
  9664.    delete conn4;
  9665.    delete conn5;
  9666.    delete conn7;
  9667. #line 433
  9668.    delete iCanvas;
  9669.    delete iNotebook1;
  9670.    delete iVBNotebookPage;
  9671.    delete iCanvas1;
  9672.    delete iVBNotebookPage1;
  9673.    delete iCanvas2;
  9674.    delete iVBNotebookPage2;
  9675.    delete iCanvas3;
  9676.    delete iEntryField1;
  9677.    delete iPushButton1;
  9678.    delete iPushButton2;
  9679.    delete iEntryField2;
  9680.    delete iAPageHandler1;
  9681. }
  9682. #line 451
  9683. #pragma export (test::initializePart())
  9684. test & test::initializePart()
  9685. {
  9686.    makeConnections();
  9687.    notifyObservers(INotificationEvent(readyId, *this));
  9688.    return *this;
  9689. }
  9690. #line 463
  9691. #pragma export (test::makeConnections())
  9692. Boolean test::makeConnections()
  9693. {
  9694.    this->enableNotification();
  9695.    iCanvas->enableNotification();
  9696.    iNotebook1->enableNotification();
  9697.    iVBNotebookPage->enableNotification();
  9698.    iCanvas1->enableNotification();
  9699.    iVBNotebookPage1->enableNotification();
  9700.    iCanvas2->enableNotification();
  9701.    iVBNotebookPage2->enableNotification();
  9702.    iCanvas3->enableNotification();
  9703.    iEntryField1->enableNotification();
  9704.    iPushButton1->enableNotification();
  9705.    iPushButton2->enableNotification();
  9706.    iEntryField2->enableNotification();
  9707.    iAPageHandler1->enableNotification();
  9708.  
  9709.    conn0->initialize(iPushButton1, iAPageHandler1);
  9710.    conn0->handleNotificationsFor(*iPushButton1);
  9711.    conn0->setNotebk(iNotebook1);
  9712.    conn2->initialize(iAPageHandler1, iEntryField1);
  9713.    conn2->handleNotificationsFor(*iAPageHandler1);
  9714.    conn2->setNewValue(iAPageHandler1);
  9715.    conn4->initialize(iAPageHandler1, iEntryField2);
  9716.    conn4->handleNotificationsFor(*iAPageHandler1);
  9717.    conn4->handleNotificationsFor(*iEntryField2);
  9718.    conn5->initialize(iAPageHandler1, iEntryField1);
  9719.    conn5->handleNotificationsFor(*iAPageHandler1);
  9720.    conn5->setNewValue(iAPageHandler1);
  9721.    conn7->initialize(iPushButton2, iAPageHandler1);
  9722.    conn7->handleNotificationsFor(*iPushButton2);
  9723.    conn7->setNotebk(iNotebook1);
  9724.  
  9725.    conn4->setTarget();
  9726.    return true;
  9727. }
  9728. Ç
  9729. .\test.cppê¼TISêǃCPPOM30I.LIBêǃOS2386.LIBê »DEMANGLêǃCPPOOC3I.LIBêǃCPPOOV3I.LIBêÇáreadyId__4testêÇá__vft4test6IVBaseê/*******************************************************************************
  9730. * FILE NAME: test.rcx                                                          *
  9731. *                                                                              *
  9732. * DESCRIPTION:                                                                 *
  9733. *   Main resource file for application class:                                  *
  9734. *     test                                                                     *
  9735. * ---------------------------------------------------------------------------- *
  9736. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9737. * Modifications to this source file will be lost when the part is regenerated. *
  9738. *******************************************************************************/
  9739. /*******************************************************************************
  9740. * FILE NAME: test.rci                                                          *
  9741. *                                                                              *
  9742. * DESCRIPTION:                                                                 *
  9743. *   Resource include file for class:                                           *
  9744. *     test                                                                     *
  9745. * ---------------------------------------------------------------------------- *
  9746. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9747. * Modifications to this source file will be lost when the part is regenerated. *
  9748. *******************************************************************************/
  9749.  
  9750. /*******************************************************************************
  9751. * FILE NAME: test.h                                                            *
  9752. *                                                                              *
  9753. * DESCRIPTION:                                                                 *
  9754. *   Constant declarations for class:                                           *
  9755. *     test                                                                     *
  9756. * ---------------------------------------------------------------------------- *
  9757. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9758. * Modifications to this source file will be lost when the part is regenerated. *
  9759. *******************************************************************************/
  9760. /*******************************************************************************
  9761. * FILE NAME: icconst.h                                                         *
  9762. *                                                                              *
  9763. * DESCRIPTION:                                                                 *
  9764. *   User Interface resource identifier macro constants.                        *
  9765. *                                                                              *
  9766. * COPYRIGHT:                                                                   *
  9767. *   IBM Open Class Library                                                     *
  9768. *   (C) Copyright International Business Machines Corporation 1992, 1995       *
  9769. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  9770. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  9771. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  9772. *                                                                              *
  9773. *******************************************************************************/
  9774. /*******************************************************************************
  9775. * FILE NAME: icconsta.h                                                        *
  9776. *                                                                              *
  9777. * DESCRIPTION:                                                                 *
  9778. *   Application Support resource identifier macro constants                    *
  9779. *                                                                              *
  9780. * COPYRIGHT:                                                                   *
  9781. *   IBM Open Class Library                                                     *
  9782. *   (C) Copyright International Business Machines Corporation 1992, 1995       *
  9783. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  9784. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  9785. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  9786. *                                                                              *
  9787. *******************************************************************************/
  9788.  
  9789.  
  9790.  
  9791. // Identifiers for class library errors.
  9792.  
  9793.  
  9794.  
  9795.  
  9796.  
  9797.  
  9798.  
  9799.  
  9800.  
  9801.  
  9802.  
  9803.  
  9804.  
  9805.  
  9806. // The following identifiers are used for exception handling in the GBM
  9807. // image handling code.
  9808.  
  9809.  
  9810.  
  9811. // Window identifiers for frames and standard frame components.
  9812.  
  9813. // The IC_ID_BASE constant is defined both here and in ibase.hpp.
  9814. // It is defined here to allow its use in resource files or other
  9815. // places where a C++ header cannot be used.
  9816.  
  9817. // The following identifiers are defined and may be used when constructing
  9818. // IToolBarButtons for standard operations.
  9819.  
  9820. // The following identifiers are defined and used by the class libary
  9821. // when constructing special IToolBarButtons.
  9822.  
  9823.  
  9824. // Window identifiers for the child windows of an IViewPort.
  9825.  
  9826.  
  9827.  
  9828. /*******************************************************************************
  9829. * FILE NAME: ivbdefs.h                                                         *
  9830. *                                                                              *
  9831. * DESCRIPTION:                                                                 *
  9832. *   Declaration of the defines and macros for the Visual Builder.              *
  9833. *                                                                              *
  9834. * COPYRIGHT:                                                                   *
  9835. *   IBM(R) VisualAge(TM) C++ for OS/2(R), Version 3                            *
  9836. *   (C) Copyright IBM Corporation 1991, 1995.                                  *
  9837. *    - Licensed Material - Program-Property of IBM - All Rights Reserved.      *
  9838. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  9839. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  9840. *******************************************************************************/
  9841.  
  9842.  
  9843.  
  9844.  
  9845.  
  9846.  
  9847.  
  9848.  
  9849.  
  9850.  
  9851.  
  9852.  
  9853.  
  9854.  
  9855.  
  9856.  
  9857.  
  9858.  
  9859.  
  9860.  
  9861.  
  9862.  
  9863.  
  9864.  
  9865.  
  9866.  
  9867.  
  9868.  
  9869.  
  9870.  
  9871.  
  9872.  
  9873.  
  9874.  
  9875.  
  9876.  
  9877.  
  9878.  
  9879.  
  9880.  
  9881. #include <os2.h>
  9882.  
  9883.  
  9884. HELPTABLE 15000
  9885.    BEGIN
  9886.       HELPITEM  15000,  15000,  0
  9887.    END
  9888.  
  9889. STRINGTABLE
  9890.    BEGIN
  9891.       1,  "Visual Builder 3.0"
  9892.    END
  9893.  
  9894.  
  9895. /*******************************************************************************
  9896. * FILE NAME: PgHndler.rci                                                      *
  9897. *                                                                              *
  9898. * DESCRIPTION:                                                                 *
  9899. *   Resource include file for class:                                           *
  9900. *     APageHandler- Notebook page handler                                      *
  9901. * ---------------------------------------------------------------------------- *
  9902. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9903. * Modifications to this source file will be lost when the part is regenerated. *
  9904. *******************************************************************************/
  9905.  
  9906. /*******************************************************************************
  9907. * FILE NAME: PgHndler.h                                                        *
  9908. *                                                                              *
  9909. * DESCRIPTION:                                                                 *
  9910. *   Constant declarations for class:                                           *
  9911. *     APageHandler- Notebook page handler                                      *
  9912. * ---------------------------------------------------------------------------- *
  9913. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9914. * Modifications to this source file will be lost when the part is regenerated. *
  9915. *******************************************************************************/
  9916.  
  9917.  
  9918.  
  9919.  
  9920.  
  9921. #include <os2.h>
  9922.  
  9923.  
  9924.  
  9925.  
  9926.  
  9927.  
  9928.  
  9929.  
  9930. HELPSUBTABLE (15000)
  9931.    BEGIN
  9932.    END
  9933.  
  9934.  
  9935.  
  9936.  
  9937. /*******************************************************************************
  9938. * FILE NAME: test.rci                                                          *
  9939. *                                                                              *
  9940. * DESCRIPTION:                                                                 *
  9941. *   Resource include file for class:                                           *
  9942. *     test                                                                     *
  9943. * ---------------------------------------------------------------------------- *
  9944. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  9945. * Modifications to this source file will be lost when the part is regenerated. *
  9946. *******************************************************************************/
  9947. #ifndef vbinclude
  9948. #define vbinclude  #include
  9949. #endif
  9950.  
  9951. #include "test.h"
  9952.  
  9953. vbinclude <os2.h>
  9954.  
  9955. #ifndef MAIN_RESOURCES_INCLUDED
  9956. #define MAIN_RESOURCES_INCLUDED  
  9957.  
  9958. HELPTABLE WND_test
  9959.    BEGIN
  9960.       HELPITEM  WND_test_FrameWindow,  WND_test_FrameWindow,  0
  9961.    END
  9962.  
  9963. #define test_WINDOWRESOURCES  
  9964. #define test_NONWINDOWRESOURCES  
  9965. STRINGTABLE
  9966.    BEGIN
  9967.       1,  "Visual Builder 3.0"
  9968.    END
  9969.  
  9970. #endif
  9971.  
  9972. #ifdef test_NONWINDOWRESOURCES
  9973. #ifndef test_NONWINDOWRESOURCES_INCLUDED
  9974. #define test_NONWINDOWRESOURCES_INCLUDED  
  9975. #ifndef APageHandler_NONWINDOWRESOURCES_INCLUDED
  9976. #define APageHandler_NONWINDOWRESOURCES  
  9977. #include "PgHndler.rci"
  9978. #undef APageHandler_NONWINDOWRESOURCES
  9979. #endif
  9980.  
  9981. #endif
  9982. #endif
  9983.  
  9984. #ifdef test_WINDOWRESOURCES
  9985. #define test_WINDOWRESOURCES_INCLUDING  
  9986. HELPSUBTABLE (WND_test_FrameWindow)
  9987.    BEGIN
  9988.    END
  9989.  
  9990. #undef test_WINDOWRESOURCES_INCLUDING
  9991. #endif
  9992.  
  9993. #ifdef test_HELPITEMRESOURCES
  9994.       HELPITEM  WND_test_FrameWindow,  WND_test_FrameWindow,  0
  9995. #endif
  9996.  
  9997. #ifdef test_HELPSUBITEMRESOURCES
  9998. #endif
  9999.  
  10000. /*******************************************************************************
  10001. * FILE NAME: test.rcx                                                          *
  10002. *                                                                              *
  10003. * DESCRIPTION:                                                                 *
  10004. *   Main resource file for application class:                                  *
  10005. *     test                                                                     *
  10006. * ---------------------------------------------------------------------------- *
  10007. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  10008. * Modifications to this source file will be lost when the part is regenerated. *
  10009. *******************************************************************************/
  10010. #include "test.rci"
  10011.   ÿ:0
  10012. ÿ:ÿ:    ÿ:0  04╡Visual Builder 3.0<áP0AvlFileHeaderfileType version êbinary┌│
  10013. %JÇΘ<áP╚*/*******************************************************************************
  10014. * FILE NAME: vbmain.cpp                                                        *
  10015. *                                                                              *
  10016. * DESCRIPTION:                                                                 *
  10017. *   Main program stub for class:                                               *
  10018. *     test                                                                     *
  10019. * ---------------------------------------------------------------------------- *
  10020. * Warning: This file was generated by the VisualAge C++ Visual Builder.        *
  10021. * Modifications to this source file will be lost when the part is regenerated. *
  10022. *******************************************************************************/
  10023. #ifndef _IWINDOW_
  10024. #include <iwindow.hpp>
  10025. #endif
  10026.  
  10027. #ifndef _IAPP_
  10028. #include <iapp.hpp>
  10029. #endif
  10030.  
  10031. #ifndef _IMSGBOX_
  10032. #include <imsgbox.hpp>
  10033. #endif
  10034.  
  10035. #ifndef _TEST_
  10036. #include "test.hpp"
  10037. #endif
  10038.  
  10039.  
  10040. //------------------------------------------------------------------------------
  10041. // main
  10042. //------------------------------------------------------------------------------
  10043. int main(int argc, char ** argv)
  10044. {
  10045.    IApplication::current().setArgs(argc, argv);
  10046.  
  10047.    test *iPart;
  10048.    IMessageBox::Response resp = IMessageBox::unknown;
  10049.  
  10050.    do {
  10051.       try {
  10052.          iPart = new test();
  10053.          iPart->initializePart();
  10054.          }
  10055.       catch (IException& exc) { 
  10056.          resp = IMessageBox(IWindow::desktopWindow()).show(exc);
  10057.          }
  10058.       }
  10059.    while (resp == IMessageBox::retry);
  10060.  
  10061.    if (resp == IMessageBox::cancel) IApplication::current().exit();
  10062.  
  10063.    iPart->setAutoDeleteObject();
  10064.    iPart->show();
  10065.    IApplication::current().run();
  10066.    return 0;
  10067. }   //end main
  10068.  
  10069. Ç .\vbmain.cppê¼TISêǃCPPOM30I.LIBêǃOS2386.LIBê »DEMANGLêǃCPPOOC3I.LIBêÇíHLê Ç¡LNKOH410ê(ǽ x
  10070. ûûCODECONSTBSSDATADGROUPFLATDEBTYPDEBSYMCODE32
  10071. CONST32_ROBSS32DATA32$$TYPES    $$SYMBOLS
  10072. CTOR_DTOR1
  10073. CTOR_DTOR2
  10074. CTOR_DTOR3EH_DATA_VFTEH_CODEÖ    ⌐┬    Ö    ⌐
  10075. Ö    ⌐ Ö    ⌐ Ö    ⌐╨Ö    ⌐3Ö    ⌐Ö    ⌐Ö    ⌐Ö    ⌐XÖ    )Ö    ⌐9ÜÜ  æmainé¥ PEîñ    __dl__FPväτ_Exception_CPPîr__dt__7IStringFvcurrent__12IApplicationFv    _exeentry    __nw__FUiîqdesktopWindow__7IWindowFvdefaultFramingSpec__4testFvdefaultStyle__12IFrameWindowFvdefaultTitle__4testFvC__ct__4testFUlP7IWindowT2RC10IRectangleRCQ2_12IFrameWindow5StylePCc __CatchMatchîv__ct__11IMessageBoxFP7IWindow__dt__11IMessageBoxFv__CleanupCatchîw    __ReThrowîwsetAutoDeleteObject__7IWindowFi_fltusedÇéêóí▀zâñ Tâéâ Tâùâzâ@__vftypââFï__faddrFéï__tdispzâ]âééBoolean{âäâ êêéBooleanConstantséfalseèétrueè Tâñâ Tâùâ T âùâ@     IMessageTextâââââââââEIMessageText__FUlPCcN92&EIMessageText__FRC12IMessageTextE~IMessageText__FvE __opPCc__FvEtext__FvEsetDefaultText__FPCcE__as__FRC12IMessageTextFñïpClTextFéï
  10076. bClSuccessH Tâùâ TâñâH Tââ Tââ T
  10077. ââ@ostreamH!@$IBase)â%â&â'â(â)â*â+â,â-â.â/â0â1C    #C
  10078. #E messageFile__FvEsetMessageFile__FPCcE messageText__FUlPCcN82B3__ls__FR7ostreamRC5IBaseE  asString__FvEbasDebugInfo__FvC#E version__Fv+F⌠ïunrecoverable__5IBaseunrecoverable'F⌠ïrecoverable__5IBase recoverableí∞┘FñïmsgFile__5IBasemsgFileH# Tâ"â@5IStringMâ6â7â8â9â:â;â<â=â>â?â@âAâBâCâDâEâFâGâHâIâJâKâLâMâNâOâPâQâRâSâTâUâVâWâXâYâZâ[â\â]â^â_â`âaâbâcâdâeâfâgâhâiâjâkâlâmânâoâpâqârâsâtâuâvâwâxâyâzâ{â|â}â~ââÇâüâéâââäâàâåâçâêâëâèâïâîâìâÄâÅâÉâæâÆâôâöâòâûâùâÿâÖâÜâ¢â£â¥â₧âƒâáâíâóâúâñâÑâªâºâ¿â⌐â¬â½â¼â¡â«â»â░â▒â▓â│â┤â╡â╢â╖â╕â╣â║â╗â╝â╜â╛â┐â└â┴â┬â├â─â┼â╞â╟â╚â╔â╩â╦â╠â═â╬â╧â╨â╤â╥â╙â╘â╒â╓â╫â╪â┘â┌â█â▄â▌â▐â▀âαâßâΓâπâΣâσâµâτâΦâΘâΩâδâ∞âφâεâ∩â≡â±â≥â≤â⌠â⌡â÷â≈â°â∙â·â√âⁿâ²â■â ââââââââââ    â
  10079. â â ââââââââââââââ