interact.inl
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:27k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * interact.inl
  3.  *
  4.  * Interactor classes inline functions.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: interact.inl,v $
  30.  * Revision 1.38  1999/11/16 05:19:36  craigs
  31.  * Created PCustomListBox to allow native code PStringListBox implementation
  32.  *
  33.  * Revision 1.37  1999/11/13 12:38:20  craigs
  34.  * Swapped ScrollBar nudge routines to get it right!
  35.  *
  36.  * Revision 1.36  1999/11/13 12:33:24  craigs
  37.  * Moved scrollBar nudge routines to platform dependent code
  38.  *
  39.  * Revision 1.35  1999/08/25 05:13:33  robertj
  40.  * Fixed problem with calling modal dialog from a background thread.
  41.  *
  42.  * Revision 1.34  1998/09/23 06:24:01  robertj
  43.  * Added open source copyright license.
  44.  *
  45.  * Revision 1.33  1998/09/22 15:04:38  robertj
  46.  * Fixed confusion in Font Dialog, variable at different levels with same name.
  47.  *
  48.  * Revision 1.32  1998/03/09 07:16:48  robertj
  49.  * More implementation of file types.
  50.  *
  51.  * Revision 1.31  1998/03/09 01:43:52  robertj
  52.  * Enhanced file types for standard file dialog.
  53.  *
  54.  * Revision 1.30  1998/02/06 04:00:15  robertj
  55.  * Fixed colour of controls, again!
  56.  *
  57.  * Revision 1.29  1996/04/30 12:33:37  robertj
  58.  * Changed "inPixels" boolean to enum for three coordinate systems.
  59.  *
  60.  * Revision 1.28  1995/12/23 03:49:08  robertj
  61.  * Fixed ContainsPont() function.
  62.  * Added FindWindow() function.
  63.  *
  64.  * Revision 1.27  1995/10/14 14:56:45  robertj
  65.  * Changed return values to references for efficency.
  66.  *
  67.  * Revision 1.26  1995/07/31 12:04:24  robertj
  68.  * Drag track documentation and semantic adjustment.
  69.  *
  70.  * Revision 1.25  1995/07/02 01:17:49  robertj
  71.  * Added drag tracking support.
  72.  *
  73.  * Revision 1.24  1995/06/04 08:48:44  robertj
  74.  * Added common constructor - Unix implementation requirement.
  75.  *
  76.  * Revision 1.23  1995/04/25 11:10:40  robertj
  77.  * Moved functions to .cxx file to avoid triadic compiler problems.
  78.  *
  79.  * Revision 1.22  1995/04/22 00:45:07  robertj
  80.  * Fixed missing call to common construction code in constructor.
  81.  *
  82.  * Revision 1.21  1995/04/02 09:27:22  robertj
  83.  * Added "balloon" help.
  84.  *
  85.  * Revision 1.20  1995/02/19 04:19:11  robertj
  86.  * Added dynamically linked command processing.
  87.  *
  88.  * Revision 1.19  1995/02/05  00:49:59  robertj
  89.  * Had to change variable name "small" for MSVC 2.0
  90.  *
  91.  * Revision 1.18  1995/01/27  11:10:50  robertj
  92.  * Changed alignment mask from enum to int.
  93.  * Changed state of checkbox from CheckValue to BOOL.
  94.  *
  95.  * Revision 1.17  1995/01/22  07:29:37  robertj
  96.  * Added font & colour standard dialogs.
  97.  *
  98.  * Revision 1.16  1995/01/21  05:17:02  robertj
  99.  * Fixed incorrect parameter.
  100.  *
  101.  * Revision 1.15  1995/01/18  09:02:21  robertj
  102.  * Added separate image icon for enabled and disabled button.
  103.  *
  104.  * Revision 1.14  1995/01/06  10:43:51  robertj
  105.  * Changed PRealFont usage from pointer to reference.
  106.  *
  107.  * Revision 1.13  1995/01/02  12:25:26  robertj
  108.  * Added update flag to list box select.
  109.  * Added global cursor setting for wait cursor.
  110.  *
  111.  * Revision 1.12  1994/12/21  11:58:22  robertj
  112.  * Documentation and variable normalisation.
  113.  *
  114.  * Revision 1.11  1994/12/14  11:17:09  robertj
  115.  * Changed PDIMENSION to be unsigned causing untold number of changes.
  116.  *
  117.  * Revision 1.10  1994/12/12  10:16:21  robertj
  118.  * Restructuring and documentation of container classes.
  119.  * Renaming of some macros for declaring container classes.
  120.  * Added some extra functionality to PString.
  121.  * Added start to 2 byte characters in PString.
  122.  * Fixed incorrect overrides in PCaselessString.
  123.  *
  124.  * Revision 1.9  1994/11/19  00:00:27  robertj
  125.  * Added notifier & value to main PControl constructor
  126.  *
  127.  * Revision 1.8  1994/10/30  11:46:45  robertj
  128.  * Changed mechanism for doing notification callback functions.
  129.  *
  130.  * Revision 1.7  1994/10/23  04:47:21  robertj
  131.  * PScrollable implementation.
  132.  * Moved some PTitledWindow functions to platform dependent code.
  133.  *
  134.  * Revision 1.6  1994/09/25  10:39:34  robertj
  135.  * Moved ComboBox destructor to platform dependent code.
  136.  *
  137.  * Revision 1.5  1994/08/21  23:43:02  robertj
  138.  * Added ability to get coordinates in pixels.
  139.  *
  140.  * Revision 1.4  1994/07/25  03:35:10  robertj
  141.  * Added ability to change area in which MDI children are limited.
  142.  *
  143.  * Revision 1.3  1994/07/21  23:48:38  robertj
  144.  * Moved some MDI functions to platform dependent files.
  145.  *
  146.  * Revision 1.2  1994/07/17  10:46:06  robertj
  147.  * Added MDI title code.
  148.  *
  149.  * Revision 1.1  1994/06/25  11:55:15  robertj
  150.  * Initial revision
  151.  */
  152. ///////////////////////////////////////////////////////////////////////////////
  153. // PInteractor
  154. #if defined(_PINTERACTOR)
  155. PINLINE PInteractor::PInteractor(const PInteractor &)
  156.   { }
  157. PINLINE PInteractor & PInteractor::operator=(const PInteractor &)
  158.   { return *this; }
  159. PINLINE PInteractor & PInteractor::operator[](PINDEX index)
  160.   { return children[index]; }
  161. PINLINE const PRealFont & PInteractor::GetFont()
  162.   { return font; }
  163. PINLINE PInteractor * PInteractor::GetParent() const
  164.   { return parent; }
  165. PINLINE void PInteractor::SetPosition(PORDINATE x,PORDINATE y, 
  166.                                 PositionOrigin xOrigin, PositionOrigin yOrigin)
  167.   { _SetPosition(x, y, xOrigin, yOrigin); }
  168. PINLINE void PInteractor::SetPosition(const PPoint & org, 
  169.                                 PositionOrigin xOrigin, PositionOrigin yOrigin)
  170.   { _SetPosition(org.X(), org.Y(), xOrigin, yOrigin); }
  171. PINLINE void PInteractor::SetDimensions(PDIMENSION width, PDIMENSION height,
  172.                                         CoordinateSystem coords)
  173.   { _SetDimensions(width, height, coords); }
  174. PINLINE void PInteractor::SetDimensions(const PDim & dim,
  175.                                         CoordinateSystem coords)
  176.   { _SetDimensions(dim.Width(), dim.Height(), coords); }
  177. PINLINE BOOL PInteractor::ContainsPoint(const PPoint & pt,
  178.                                         CoordinateSystem coords) const
  179.   { return GetStructureBounds(coords).ContainsPoint(pt); }
  180. PINLINE PInteractor * PInteractor::FindInteractor(const PPoint & pt,
  181.                                                 CoordinateSystem coords) const
  182.   { return owner->FindInteractor(ToScreen(pt, coords)); }
  183. PINLINE void PInteractor::Invalidate(PORDINATE x, PORDINATE y,
  184.                                      PDIMENSION dx, PDIMENSION dy,
  185.                                      CoordinateSystem coords)
  186.   { _Invalidate(x, y, dx, dy, coords); }
  187. PINLINE void PInteractor::Invalidate(const PRect & rect,
  188.                                      CoordinateSystem coords)
  189.   { _Invalidate(rect.X(), rect.Y(), rect.Width(), rect.Height(), coords); }
  190. PINLINE void PInteractor::Invalidate(const PPoint & pos,
  191.                                      const PDim & dim,
  192.                                      CoordinateSystem coords)
  193.   { _Invalidate(pos.X(), pos.Y(), dim.Width(),dim.Height(), coords); }
  194. PINLINE void PInteractor::Invalidate(const PPoint & topLeft,
  195.                                      const PPoint & botRight,
  196.                                      CoordinateSystem coords)
  197.   { _Invalidate(topLeft.X(), topLeft.Y(),
  198.                 (PDIMENSION)(botRight.X()-topLeft.X()),
  199.                 (PDIMENSION)(botRight.Y()-topLeft.Y()), coords); }
  200. PINLINE void PInteractor::Invalidate()
  201.   { _Invalidate(0, 0, 32767, 32767, PixelCoords); }
  202. PINLINE void PInteractor::Validate(PORDINATE x, PORDINATE y,
  203.                                    PDIMENSION dx, PDIMENSION dy,
  204.                                    CoordinateSystem coords)
  205.   { _Invalidate(x, y, dx, dy, coords); }
  206. PINLINE void PInteractor::Validate(const PRect & rect, CoordinateSystem coords)
  207.   { _Invalidate(rect.X(), rect.Y(), rect.Width(), rect.Height(), coords); }
  208. PINLINE void PInteractor::Validate(const PPoint & topLeft,
  209.                                    const PPoint & botRight,
  210.                                    CoordinateSystem coords)
  211.   { _Invalidate(topLeft.X(), topLeft.Y(),
  212.                 (PDIMENSION)(botRight.X()-topLeft.X()),
  213.                 (PDIMENSION)(botRight.Y()-topLeft.Y()), coords); }
  214. PINLINE void PInteractor::Validate()
  215.   { _Invalidate(0, 0, 32767, 32767, PixelCoords); }
  216. PINLINE void PInteractor::Disable()
  217.   { Enable(FALSE); }
  218. PINLINE void PInteractor::Hide()
  219.   { Show(FALSE); }
  220. PINLINE PCursor PInteractor::GetCursor() const
  221.   { return cursor; }
  222. PINLINE void PInteractor::SetWaitCursor()
  223.   { SetAllCursors(PCursor(PSTD_ID_CURSOR_WAIT)); }
  224. PINLINE void PInteractor::SetCursorPos(PORDINATE x, PORDINATE y,
  225.                                        CoordinateSystem coords)
  226.   { _SetCursorPos(x, y, coords); }
  227. PINLINE void PInteractor::SetCursorPos(const PPoint & pt,
  228.                                        CoordinateSystem coords)
  229.   { _SetCursorPos(pt.X(), pt.Y(), coords); }
  230. PINLINE void PInteractor::HideCursor()
  231.   { ShowCursor(FALSE); }
  232. PINLINE void PInteractor::SetCaret(const PCaret & newCaret)
  233.   { caret = newCaret; }
  234. PINLINE PCaret PInteractor::GetCaret() const
  235.   { return caret; }
  236. PINLINE void PInteractor::SetCaretPos(PORDINATE x, PORDINATE y,
  237.                                       CoordinateSystem coords)
  238.   { _SetCaretPos(x, y, coords); }
  239. PINLINE void PInteractor::SetCaretPos(const PPoint & pt,
  240.                                       CoordinateSystem coords)
  241.   { _SetCaretPos(pt.X(), pt.Y(), coords); }
  242. PINLINE void PInteractor::HideCaret() 
  243.   { ShowCaret(FALSE); }
  244. PINLINE void PInteractor::SetForegroundColour(const PColour & newColour)
  245.   { foregroundColour = newColour; }
  246. PINLINE const PColour & PInteractor::GetForegroundColour() const
  247.   { return foregroundColour; }
  248. PINLINE const PColour & PInteractor::GetBackgroundColour() const
  249.   { return backgroundColour; }
  250. PINLINE PCanvas * PInteractor::StartMouseTrack(BOOL wantCanvas)
  251.   { return StartMouseTrack(this, wantCanvas); }
  252. PINLINE PDIMENSION PInteractor::ToPixelsDX(PDIMENSION x) const
  253.   { return (PDIMENSION)ToPixelsX((PDIMENSION)x); }
  254.   
  255. PINLINE PDIMENSION PInteractor::ToPixelsDY(PDIMENSION y) const
  256.   { return (PDIMENSION)ToPixelsY((PDIMENSION)y); }
  257.   
  258. PINLINE PDim PInteractor::ToPixels(const PDim & dim) const
  259.   { return PDim(ToPixelsDX(dim.Width()), ToPixelsDY(dim.Height())); }
  260.   
  261. PINLINE PPoint PInteractor::ToPixels(const PPoint & pt) const
  262.   { return PPoint(ToPixelsX(pt.X()), ToPixelsY(pt.Y())); }
  263.   
  264. PINLINE PRect PInteractor::ToPixels(const PRect & r) const
  265.   { return PRect(ToPixels(r.Origin()), ToPixels(r.Corner())); }
  266.   
  267. PINLINE PDIMENSION PInteractor::FromPixelsDX(PDIMENSION x) const
  268.   { return (PDIMENSION)FromPixelsX((PDIMENSION)x); }
  269.   
  270. PINLINE PDIMENSION PInteractor::FromPixelsDY(PDIMENSION y) const
  271.   { return (PDIMENSION)FromPixelsY((PDIMENSION)y); }
  272.   
  273. PINLINE PDim PInteractor::FromPixels(const PDim & dim) const
  274.   { return PDim(FromPixelsDX(dim.Width()), FromPixelsDY(dim.Height())); }
  275.   
  276. PINLINE PPoint PInteractor::FromPixels(const PPoint & pt) const
  277.   { return PPoint(FromPixelsX(pt.X()), FromPixelsY(pt.Y())); }
  278.   
  279. PINLINE PRect PInteractor::FromPixels(const PRect & r) const
  280.   { return PRect(FromPixels(r.Origin()), FromPixels(r.Corner())); }
  281.   
  282. #endif
  283. //////////////////////////////////////////////////////////////////////////////
  284. // PBalloon
  285. PINLINE const PString & PBalloon::GetText() const
  286.   { return balloonText; }
  287. //////////////////////////////////////////////////////////////////////////////
  288. // PScrollable & PScroller
  289. #if defined(_PSCROLLABLE)
  290. PINLINE PVerticalScrollBar & PScroller::GetVerticalScrollBar() const
  291.   { return *vScroll; }
  292. PINLINE PHorizontalScrollBar & PScroller::GetHorizontalScrollBar() const
  293.   { return *hScroll; }
  294. PINLINE PRect PScrollable::GetScrollRange() const
  295.   { return scrollRange; }
  296. PINLINE void PScrollable::SetScaleFactor(PORDINATE x, PORDINATE y)
  297.   { SetScaleFactor(PPoint(x, y)); }
  298. PINLINE PPoint PScrollable::GetScaleFactor() const
  299.   { return scaleFactor; }
  300. PINLINE PPoint PScrollable::GetOrigin() const
  301.   { return origin; }
  302. PINLINE void PScrollable::ScrollTo(PORDINATE x, PORDINATE y)
  303.   { ScrollTo(PPoint(x, y)); }
  304. PINLINE void PScrollable::ScrollBy(const PPoint & delta)
  305.   { ScrollTo(origin + delta); }
  306. PINLINE void PScrollable::ScrollBy(PORDINATE dx, PORDINATE dy)
  307.   { ScrollBy(PPoint(dx, dy)); }
  308. #endif
  309. //////////////////////////////////////////////////////////////////////////////
  310. // PControl
  311. #if defined(_PCONTROL)
  312. PINLINE PControl::~PControl()
  313.   { }
  314. PINLINE PRESOURCE_ID PControl::GetControlID() const
  315.   { return controlID; }
  316.   
  317. PINLINE const PNotifier & PControl::GetNotifier() const
  318.   { return callback; }
  319. PINLINE BOOL PControl::WillNotifyOnStateUpdate() const
  320.   { return notifyForStateUpdate; }
  321. PINLINE void PControl::SetNotifier(const PNotifier & func, BOOL update)
  322.   { callback = func; notifyForStateUpdate = update; }
  323. PINLINE void * PControl::GetValuePointer() const
  324.   { return valuePointer; }
  325. PINLINE void PControl::SetValuePointer(void * ptr)
  326.   { valuePointer = ptr; }
  327. PINLINE const PString & PControl::GetBalloonHelp() const
  328.   { return balloonHelpText; }
  329. PINLINE void PControl::SetBalloonHelp(const PString & text)
  330.   { balloonHelpText = text; }
  331. #endif
  332. //////////////////////////////////////////////////////////////////////////////
  333. // PNamedControl
  334. #if defined(_PNAMEDCONTROL)
  335. PINLINE PNamedControl::PNamedControl(PInteractor * parent)
  336.   : PControl(parent, PNotifier(), NULL) { }
  337. PINLINE PNamedControl::~PNamedControl()
  338.   { }
  339. #endif
  340. //////////////////////////////////////////////////////////////////////////////
  341. // PStaticText
  342. #if defined (_PSTATICTEXT)
  343. PINLINE PStaticText::~PStaticText()
  344.   { }
  345. PINLINE int PStaticText::GetAlignment() const
  346.   { return alignment; }
  347. #endif
  348. //////////////////////////////////////////////////////////////////////////////
  349. // PStaticIcon
  350. #if defined (_PSTATICICON)
  351. PINLINE PStaticIcon::PStaticIcon(PInteractor * parent)
  352.   : PControl(parent, PNotifier(), NULL),
  353.     icon(PSTD_ID_ICON_INFORMATION) { }
  354. PINLINE PStaticIcon::~PStaticIcon()
  355.   { }
  356. PINLINE PIcon PStaticIcon::GetIcon() const
  357.   { return icon; }
  358. #endif
  359. //////////////////////////////////////////////////////////////////////////////
  360. // PStaticBox
  361. #if defined (_PSTATICBOX)
  362. PINLINE PStaticBox::~PStaticBox()
  363.   { }
  364. #endif
  365. //////////////////////////////////////////////////////////////////////////////
  366. // PEditBox
  367. #if defined(_PEDITBOX)
  368. PINLINE PEditBox::PEditBox(PInteractor * parent)
  369.   : PControl(parent, PNotifier(), NULL) { Construct(); }
  370. PINLINE PString * PEditBox::GetValuePointer() const
  371.   { return (PString *)PControl::GetValuePointer(); }
  372. PINLINE void PEditBox::SetValuePointer(PString * ptr)
  373.   { PControl::SetValuePointer(ptr); }
  374. #endif
  375. //////////////////////////////////////////////////////////////////////////////
  376. // PPasswordEditBox
  377. #if defined(_PPASSWORDEDITBOX)
  378. PINLINE PPasswordEditBox::PPasswordEditBox(PInteractor * parent)
  379.   : PEditBox(parent) { Construct(); }
  380. #endif
  381. //////////////////////////////////////////////////////////////////////////////
  382. // PMultiLineEditBox
  383. #if defined(_PMULTILINEEDITBOX)
  384. PINLINE PMultiLineEditBox::PMultiLineEditBox(PInteractor * parent)
  385.   : PEditBox(parent) { Construct(); }
  386. #endif
  387. //////////////////////////////////////////////////////////////////////////////
  388. // PNumberEditBox
  389. #if defined(_PNUMBEREDITBOX)
  390. PINLINE PNumberEditBox::~PNumberEditBox()
  391.   { }
  392. #endif
  393. //////////////////////////////////////////////////////////////////////////////
  394. // PIntegerEditBox
  395. #if defined(_PINTEGEREDITBOX)
  396. PINLINE PIntegerEditBox::~PIntegerEditBox()
  397.   { }
  398. PINLINE long * PIntegerEditBox::GetValuePointer() const
  399.   { return (long *)PControl::GetValuePointer(); }
  400. PINLINE void PIntegerEditBox::SetValuePointer(long * ptr)
  401.   { PControl::SetValuePointer(ptr); }
  402. PINLINE void PIntegerEditBox::SetMaximum(long val)
  403.   { maximum = val; }
  404. PINLINE long PIntegerEditBox::GetMaximum()
  405.   { return maximum; }
  406. PINLINE void PIntegerEditBox::SetMinimum(long val)
  407.   { minimum = val; }
  408. PINLINE long PIntegerEditBox::GetMinimum()
  409.   { return minimum; }
  410. PINLINE long PIntegerEditBox::GetNudge()
  411.   { return nudge; }
  412. PINLINE BYTE PIntegerEditBox::GetBase()
  413.   { return base; }
  414. #endif
  415. //////////////////////////////////////////////////////////////////////////////
  416. // PFloatEditBox
  417. #if defined(_PFLOATEDITBOX)
  418. PINLINE PFloatEditBox::~PFloatEditBox()
  419.   { }
  420. PINLINE double * PFloatEditBox::GetValuePointer() const
  421.   { return (double *)PControl::GetValuePointer(); }
  422. PINLINE void PFloatEditBox::SetValuePointer(double * ptr)
  423.   { PControl::SetValuePointer(ptr); }
  424. PINLINE void PFloatEditBox::SetMaximum(double val)
  425.   { maximum = val; }
  426. PINLINE double PFloatEditBox::GetMaximum()
  427.   { return maximum; }
  428. PINLINE void PFloatEditBox::SetMinimum(double val)
  429.   { minimum = val; }
  430. PINLINE double PFloatEditBox::GetMinimum()
  431.   { return minimum; }
  432. PINLINE void PFloatEditBox::SetNudge(double val)
  433.   { nudge = val; }
  434. PINLINE double PFloatEditBox::GetNudge()
  435.   { return nudge; }
  436. PINLINE void PFloatEditBox::SetDecimals(unsigned val)
  437.   { decimals = val; }
  438. PINLINE unsigned PFloatEditBox::GetDecimals()
  439.   { return decimals; }
  440. #endif
  441. //////////////////////////////////////////////////////////////////////////////
  442. // PPushButton
  443. #if defined(_PPUSHBUTTON)
  444. PINLINE PPushButton::~PPushButton()
  445.   { }
  446. #endif
  447. //////////////////////////////////////////////////////////////////////////////
  448. // PTextButton
  449. #if defined(_PTEXTBUTTON)
  450. PINLINE PTextButton::PTextButton(PInteractor * parent, ButtonType deflt)
  451.   : PPushButton(parent, deflt) { }
  452. PINLINE PTextButton::~PTextButton()
  453.   { }
  454. #endif
  455. //////////////////////////////////////////////////////////////////////////////
  456. // PImageButton
  457. #if defined(_PIMAGEBUTTON)
  458. PINLINE PImageButton::~PImageButton()
  459.   { }
  460. PINLINE void PImageButton::SetImage(const PImgIcon & img)
  461.   { enabledImage = disabledImage = img; }
  462. PINLINE void PImageButton::SetImage(const PImgIcon & enabledImg,
  463.                                     const PImgIcon & disabledImg)
  464.   { enabledImage = enabledImg; disabledImage = disabledImg; }
  465. PINLINE PImgIcon PImageButton::GetEnabledImage() const
  466.   { return enabledImage; }
  467. PINLINE PImgIcon PImageButton::GetDisabledImage() const
  468.   { return disabledImage; }
  469. #endif
  470. //////////////////////////////////////////////////////////////////////////////
  471. // PCheck3WayBox
  472. #if defined(_PCHECK3WAYBOX)
  473. PINLINE PCheck3WayBox::~PCheck3WayBox()
  474.   { }
  475. PINLINE PCheck3WayBox::CheckValues * PCheck3WayBox::GetValuePointer() const
  476.   { return (CheckValues *)PControl::GetValuePointer(); }
  477. PINLINE void PCheck3WayBox::SetValuePointer(CheckValues * ptr)
  478.   { PControl::SetValuePointer(ptr); }
  479. #endif
  480. //////////////////////////////////////////////////////////////////////////////
  481. // PCheckBox
  482. #if defined(_PCHECKBOX)
  483. PINLINE PCheckBox::~PCheckBox()
  484.   { }
  485. PINLINE BOOL PCheckBox::GetValue() const
  486.   { return PCheck3WayBox::GetValue() == Checked; }
  487. PINLINE void PCheckBox::SetValue(BOOL newVal)
  488.   { PCheck3WayBox::SetValue(newVal ? Checked : Unchecked); }
  489. PINLINE BOOL * PCheckBox::GetValuePointer() const
  490.   { return (BOOL *)PControl::GetValuePointer(); }
  491. PINLINE void PCheckBox::SetValuePointer(BOOL * ptr)
  492.   { PControl::SetValuePointer(ptr); }
  493. #endif
  494. //////////////////////////////////////////////////////////////////////////////
  495. // PRadioButton
  496. #if defined(_PRADIOBUTTON)
  497. PINLINE PRadioButton::~PRadioButton()
  498.   { }
  499. PINLINE PINDEX * PRadioButton::GetValuePointer() const
  500.   { return (PINDEX *)PControl::GetValuePointer(); }
  501. PINLINE void PRadioButton::SetValuePointer(PINDEX * ptr)
  502.   { PControl::SetValuePointer(ptr); }
  503. #endif
  504. //////////////////////////////////////////////////////////////////////////////
  505. // PChoiceBox
  506. #if defined(_PCHOICEBOX)
  507. PINLINE PINDEX * PChoiceBox::GetValuePointer() const
  508.   { return (PINDEX *)PControl::GetValuePointer(); }
  509. PINLINE void PChoiceBox::SetValuePointer(PINDEX * ptr)
  510.   { PControl::SetValuePointer(ptr); }
  511. #endif
  512. //////////////////////////////////////////////////////////////////////////////
  513. // PListBox
  514. #if defined(_PLISTBOX)
  515. PINLINE void PListBox::AllowDeleteObjects(BOOL yes)
  516.   { deleteObjects = yes; }
  517. PINLINE void PListBox::DisallowDeleteObjects()
  518.   { deleteObjects = FALSE; }
  519. PINLINE void PListBox::Deselect(PINDEX index, BOOL update)
  520.   { Select(index, update, FALSE); }
  521. PINLINE PINDEX * PListBox::GetValuePointer() const
  522.   { return (PINDEX *)PControl::GetValuePointer(); }
  523. PINLINE void PListBox::SetValuePointer(PINDEX * ptr)
  524.   { PControl::SetValuePointer(ptr); }
  525. #endif
  526. //////////////////////////////////////////////////////////////////////////////
  527. // PStringListBox
  528. #if defined(_PSTRINGLISTBOX)
  529. PINLINE PStringListBox::PStringListBox(PInteractor * parent, 
  530.               StringSorting sorted, SelectType select, PDIMENSION columnWidth)
  531.   : PListBox(parent, sorted, select, columnWidth) { AllowDeleteObjects(); }
  532. PINLINE PStringListBox::~PStringListBox()
  533.   { }
  534. PINLINE PString PStringListBox::GetSelectedString() const
  535.   { return GetString(GetSelection()); }
  536. #endif
  537. //////////////////////////////////////////////////////////////////////////////
  538. // PComboBox
  539. #if defined(_PCOMBOBOX)
  540. PINLINE PString * PComboBox::GetValuePointer() const
  541.   { return (PString *)PControl::GetValuePointer(); }
  542. PINLINE void PComboBox::SetValuePointer(PString * ptr)
  543.   { PControl::SetValuePointer(ptr); }
  544. #endif
  545. //////////////////////////////////////////////////////////////////////////////
  546. // PScrollBar
  547. #if defined(_PSCROLLBAR)
  548. PINLINE PScrollBar::~PScrollBar()
  549.   { }
  550. PINLINE PSCROLLBAR_VALUE * PScrollBar::GetValuePointer() const
  551.   { return (PSCROLLBAR_VALUE *)PControl::GetValuePointer(); }
  552. PINLINE void PScrollBar::SetValuePointer(PSCROLLBAR_VALUE * ptr)
  553.   { PControl::SetValuePointer(ptr); }
  554. PINLINE PSCROLLBAR_VALUE PScrollBar::GetMaximum() const
  555.   { return maximum; }
  556. PINLINE PSCROLLBAR_VALUE PScrollBar::GetMinimum() const
  557.   { return minimum; }
  558. PINLINE PSCROLLBAR_VALUE PScrollBar::GetValue() const
  559.   { return value; }
  560. PINLINE PSCROLLBAR_VALUE PScrollBar::GetSmallNudge() const
  561.   { return smallNudge; }
  562. PINLINE PSCROLLBAR_VALUE PScrollBar::GetLargeNudge() const
  563.    { return largeNudge; }
  564. #endif
  565. //////////////////////////////////////////////////////////////////////////////
  566. // PDialog
  567. #if defined(_PDIALOG)
  568. #endif
  569. //////////////////////////////////////////////////////////////////////////////
  570. // PModalDialog
  571. #if defined(_PMODALDIALOG)
  572. PINLINE PModalDialog::PModalDialog(PInteractor * parent)
  573.   : PDialog(parent) { Construct(); }
  574. PINLINE PModalDialog::PModalDialog(PInteractor * parent, PRESOURCE_ID resID)
  575.   : PDialog(parent, resID) { Construct(); }
  576. #endif
  577. //////////////////////////////////////////////////////////////////////////////
  578. // PFileDialog
  579. #if defined(_PFILEDIALOG)
  580. PINLINE void PFileDialog::SetDirectory(const PDirectory & dir)
  581.   { directory = dir; }
  582.       
  583. PINLINE const PDirectory & PFileDialog::GetDirectory() const
  584.   { return directory; }
  585.       
  586. PINLINE void PFileDialog::SetDefaultFilename(const PString & fname)
  587.   { defaultFilename = fname; }
  588.       
  589. PINLINE const PFilePath & PFileDialog::GetFile() const
  590.   { return file; }
  591. #endif
  592. //////////////////////////////////////////////////////////////////////////////
  593. // POpenFileDialog
  594. #if defined(_POPENFILEDIALOG)
  595. PINLINE POpenFileDialog::~POpenFileDialog()
  596.   { }
  597. PINLINE PStringArray POpenFileDialog::GetFileTypes() const
  598.   { return fileTypes; }
  599. #endif
  600. //////////////////////////////////////////////////////////////////////////////
  601. // PSaveFileDialog
  602. #if defined(_PSAVEFILEDIALOG)
  603. PINLINE PSaveFileDialog::~PSaveFileDialog()
  604.   { }
  605. PINLINE void PSaveFileDialog::SetDefaultFileType(const PString & type)
  606.   { defaultType = type; }
  607. PINLINE PString PSaveFileDialog::GetDefaultFileType() const
  608.   { return defaultType; }
  609. #endif
  610. //////////////////////////////////////////////////////////////////////////////
  611. // POpenDirDialog
  612. #if defined(_POPENDIRDIALOG)
  613. PINLINE POpenDirDialog::~POpenDirDialog()
  614.   { }
  615. #endif
  616. //////////////////////////////////////////////////////////////////////////////
  617. // PPrintDialog
  618. #ifdef _PPRINTDIALOG
  619. PINLINE const PPrintInfo & PPrintDialog::GetPrintInfo() const
  620.   { return printInfo; }
  621. #endif
  622. //////////////////////////////////////////////////////////////////////////////
  623. // PPrinterSetupDialog
  624. #ifdef _PPRINTERSETUPDIALOG
  625. PINLINE PPrinterSetupDialog::~PPrinterSetupDialog()
  626.   { }
  627. #endif
  628. //////////////////////////////////////////////////////////////////////////////
  629. // PPrintJobDialog
  630. #ifdef _PPRINTJOBDIALOG
  631. PINLINE PPrintJobDialog::~PPrintJobDialog()
  632.   { }
  633. #endif
  634. //////////////////////////////////////////////////////////////////////////////
  635. // PFontDialog
  636. #ifdef _PFONTDIALOG
  637. PINLINE const PFont & PFontDialog::GetSelectedFont() const
  638.   { return selectedFont; }
  639. #endif
  640. //////////////////////////////////////////////////////////////////////////////
  641. // PColourDialog
  642. #ifdef _PCOLOURDIALOG
  643. PINLINE const PColour & PColourDialog::GetColour() const
  644.   { return colour; }
  645. #endif
  646. /////////////////////////////////////////////////////////////////////////////
  647. // PTitledWindow
  648. #if defined(_PTITLEDWINDOW)
  649. PINLINE void PTitledWindow::SetMinSize(
  650.                            PDIMENSION x, PDIMENSION y, CoordinateSystem coords)
  651.   { SetMinSize(PDim(x, y), coords); }
  652. PINLINE void PTitledWindow::SetMaxSize(
  653.                            PDIMENSION x, PDIMENSION y, CoordinateSystem coords)
  654.   { SetMaxSize(PDim(x, y), coords); }
  655. PINLINE void PTitledWindow::SetZoomSize(
  656.                            PDIMENSION x, PDIMENSION y, CoordinateSystem coords)
  657.   { SetZoomSize(PDim(x, y), coords); }
  658. PINLINE const PIcon & PTitledWindow::GetIcon()
  659.   { return icon; }
  660.   
  661.   
  662. #endif
  663. ///////////////////////////////////////////////////////////////////////////////
  664. // PTopLevelWindow
  665. #if defined(_PTOPLEVELWINDOW)
  666. PINLINE PRootMenu * PTopLevelWindow::GetMenu() const
  667.   { return menu; }
  668. #endif
  669. // End Of File ///////////////////////////////////////////////////////////////