iaws/awsecomp.h
00001 /************************************************************************** 00002 Copyright (C) 2001 by Christopher Nelson 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public 00015 License along with this library; if not, write to the Free 00016 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 *****************************************************************************/ 00018 00019 #ifndef __CS_AWS_EMBEDDED_COMPONENT_H__ 00020 #define __CS_AWS_EMBEDDED_COMPONENT_H__ 00021 00022 #include "csutil/ref.h" 00023 #include "iaws/aws.h" 00024 #include "iaws/awsparm.h" 00025 #include "iutil/event.h" 00026 #include "iaws/awsdefs.h" 00027 #include "csutil/event.h" 00028 00042 class awsEmbeddedComponent : public iAwsComponent 00043 { 00044 csRef<iAwsComponent> comp; 00045 iAws *aws_manager; 00046 00047 public: 00048 awsEmbeddedComponent(iAws *mgr) : aws_manager (mgr) { } 00049 virtual ~awsEmbeddedComponent() 00050 { 00051 comp->WindowManager()->ComponentDestroyed( this ); 00052 } 00053 00054 public: 00056 virtual iAwsComponent *GetComponent () 00057 { return this; } 00058 00059 iAws *GetManager () 00060 { return aws_manager; } 00061 00063 virtual bool RegisterSlot (iAwsSlot *slot, unsigned long signal) 00064 { return comp->RegisterSlot (slot, signal); } 00065 00067 virtual bool UnregisterSlot (iAwsSlot *slot, unsigned long signal) 00068 { return comp->UnregisterSlot (slot, signal); } 00069 00071 virtual void Broadcast (uint32 signal) 00072 { comp->Broadcast (signal); } 00073 00074 public: 00076 virtual void Initialize (iAwsComponent *component) 00077 { 00078 comp = component; 00079 } 00080 00098 virtual bool Create (iAws *m, iAwsComponent *parent, 00099 iAwsComponentNode *settings) 00100 { 00101 return comp->Create(m, parent, settings); 00102 } 00103 00105 virtual bool Setup (iAws *wmgr, iAwsComponentNode *settings) 00106 { return comp->Setup (wmgr, settings); } 00107 00112 virtual bool HandleEvent(iEvent& Event) 00113 { 00114 return comp->HandleEvent(Event); 00115 } 00116 00121 virtual bool GetProperty (const char *name, intptr_t *parm) 00122 { return comp->GetProperty (name, parm); } 00123 00124 #ifndef AWS_VOIDP_IS_ERROR 00125 00131 AWS_VOIDP_IS_WARNING 00132 virtual bool GetProperty(const char* name, void **parm) 00133 { return comp->GetProperty (name, (intptr_t*)parm); } 00134 #endif 00135 00140 virtual bool SetProperty (const char *name, intptr_t parm) 00141 { return comp->SetProperty (name, parm); } 00142 00143 #ifndef AWS_VOIDP_IS_ERROR 00144 00150 AWS_VOIDP_IS_WARNING 00151 virtual bool SetProperty(const char* name, void *parm) 00152 { return comp->SetProperty (name, (intptr_t)parm); } 00153 #endif 00154 00156 virtual bool Execute (const char *action, iAwsParmList* parmlist) 00157 { return comp->Execute (action, parmlist); } 00158 00160 virtual void SetFlag (unsigned int flag) 00161 { comp->SetFlag (flag); } 00162 00164 virtual void ClearFlag (unsigned int flag) 00165 { comp->ClearFlag (flag); } 00166 00168 virtual unsigned int Flags () 00169 { return comp->Flags (); } 00170 00172 virtual void Invalidate () 00173 { comp->Invalidate (); } 00174 00176 virtual void Invalidate (csRect area) 00177 { comp->Invalidate (area); } 00178 00180 virtual csRect Frame () 00181 { return comp->Frame (); } 00182 00184 virtual csRect ClientFrame () 00185 { return comp->ClientFrame (); } 00186 00191 virtual const char *Type () 00192 { return comp->Type (); } 00193 00195 virtual bool Overlaps (csRect &r) 00196 { return comp->Overlaps (r); } 00197 00199 virtual bool isHidden () 00200 { return comp->isHidden (); } 00201 00203 virtual void Hide () 00204 { comp->Hide (); } 00205 00207 virtual void Show () 00208 { comp->Show (); } 00209 00211 virtual void Move (int delta_x, int delta_y) 00212 { comp->Move (delta_x, delta_y); } 00213 00215 virtual void MoveTo (int x, int y) 00216 { comp->MoveTo (x, y); } 00217 00219 virtual void Resize (int width, int height) 00220 { comp->Resize (width, height); } 00221 00223 virtual void ResizeTo (csRect newFrame) 00224 { comp->ResizeTo (newFrame); } 00225 00227 virtual unsigned long GetID () 00228 { return comp->GetID (); } 00229 00234 virtual void SetID (unsigned long id) 00235 { comp->SetID (id); } 00236 00237 virtual iAwsComponent* FindChild (const char* name) 00238 { return comp->FindChild (name); } 00239 00240 virtual iAwsComponent* DoFindChild (unsigned int id) 00241 { return comp->DoFindChild (id); } 00242 00243 virtual bool IsMaximized() 00244 { return comp->IsMaximized(); } 00245 00246 virtual void Maximize() 00247 { comp->Maximize(); } 00248 00249 virtual void UnMaximize() 00250 { comp->UnMaximize(); } 00251 00253 virtual void LayoutChildren () 00254 { comp->LayoutChildren (); } 00255 00256 virtual void AddToLayout (iAwsComponent *cmp, iAwsComponentNode* settings) 00257 { comp->AddToLayout (cmp, settings); } 00258 00260 virtual void SetFocusable (bool focusable) 00261 { comp->SetFocusable (focusable); } 00262 00264 virtual bool Focusable () 00265 { return comp->Focusable (); } 00266 00268 virtual bool isFocused () 00269 { return comp->isFocused (); } 00270 00272 virtual void SetFocus () 00273 { comp->SetFocus (); } 00274 00276 virtual void UnsetFocus () 00277 { comp->UnsetFocus (); } 00278 00280 virtual bool AddToTabOrder (iAwsComponent *cmp) 00281 { return comp->AddToTabOrder (cmp); } 00282 00284 virtual iAwsComponent *TabNext (iAwsComponent *cmp) 00285 { return comp->TabNext (cmp); } 00286 00288 virtual iAwsComponent *TabPrev (iAwsComponent *cmp) 00289 { return comp->TabPrev (cmp); } 00290 00292 virtual int GetTabLength () 00293 { return comp->GetTabLength (); } 00294 00296 virtual iAwsComponent *GetTabComponent (int index) 00297 { return comp->GetTabComponent (index); } 00298 00300 virtual iAwsComponent *GetFirstFocusableChild (iAwsComponent *comp) 00301 { return comp->GetFirstFocusableChild (comp); } 00302 00304 virtual void AddChild(iAwsComponent* child) 00305 { comp->AddChild(child); } 00306 00308 virtual void RemoveChild(iAwsComponent *child) 00309 { comp->RemoveChild(child); } 00310 00312 virtual int GetChildCount() 00313 { return comp->GetChildCount(); } 00314 00316 virtual iAwsComponent *GetTopChild() 00317 { return comp->GetTopChild(); } 00318 00320 virtual bool HasChildren() 00321 { return comp->HasChildren(); } 00322 00323 virtual iAwsComponent *ChildAt(int x, int y) 00324 { return comp->ChildAt(x,y); } 00325 00331 iAws *WindowManager() 00332 { return comp->Window()->WindowManager(); } 00333 00335 iAwsComponent *Window() 00336 { return comp->Window(); } 00337 00339 iAwsComponent *Parent() 00340 { return comp->Parent(); } 00341 00343 virtual void SetParent(iAwsComponent *parent) 00344 { comp->SetParent(parent); } 00345 00347 virtual iAwsComponent *ComponentAbove() 00348 { return comp->ComponentAbove(); } 00349 00351 virtual iAwsComponent *ComponentBelow() 00352 { return comp->ComponentBelow(); } 00353 00355 virtual void SetComponentAbove(iAwsComponent *cmp) 00356 { comp->SetComponentAbove(cmp); } 00357 00359 virtual void SetComponentBelow(iAwsComponent *cmp) 00360 { comp->SetComponentBelow(cmp); } 00361 00363 virtual void Raise() 00364 { comp->Raise (); } 00365 00367 virtual void Lower() 00368 { comp->Lower (); } 00369 00371 virtual void SetRedrawTag(unsigned int tag) 00372 { comp->SetRedrawTag (tag); } 00373 00375 virtual unsigned int RedrawTag() 00376 { return comp->RedrawTag (); } 00377 00379 virtual void OnDraw(csRect clip) 00380 { comp->OnDraw (clip); } 00381 00383 virtual bool OnMouseDown(int button, int x, int y) 00384 { return comp->OnMouseDown (button, x, y); } 00385 00387 virtual bool OnMouseUp(int button, int x, int y) 00388 { return comp->OnMouseUp (button, x, y); } 00389 00391 virtual bool OnMouseMove(int button, int x, int y) 00392 { return comp->OnMouseMove (button, x, y); } 00393 00395 virtual bool OnMouseClick(int button, int x, int y) 00396 { return comp->OnMouseClick (button, x, y); } 00397 00399 virtual bool OnMouseDoubleClick(int button, int x, int y) 00400 { return comp->OnMouseDoubleClick (button, x, y); } 00401 00403 virtual bool OnMouseExit() 00404 { return comp->OnMouseExit (); } 00405 00407 virtual bool OnMouseEnter() 00408 { return comp->OnMouseEnter (); } 00409 00411 virtual bool OnKeyboard (const csKeyEventData& eventData) 00412 { return comp->OnKeyboard (eventData); } 00413 00415 virtual bool OnLostFocus() 00416 { return comp->OnLostFocus (); } 00417 00419 virtual bool OnGainFocus() 00420 { return comp->OnGainFocus (); } 00421 00423 virtual iAwsLayoutManager *Layout() 00424 { return comp->Layout ();} 00425 00427 virtual void SetLayout(iAwsLayoutManager *layoutMgr) 00428 { comp->SetLayout(layoutMgr); } 00429 00431 virtual csRect getPreferredSize() 00432 { return comp->getPreferredSize (); } 00433 00435 virtual void setPreferredSize (const csRect& size) 00436 { comp->setPreferredSize(size); } 00437 00439 virtual void clearPreferredSize () 00440 { comp->clearPreferredSize(); } 00441 00443 virtual csRect getMinimumSize() 00444 { return comp->getMinimumSize (); } 00445 00447 virtual csRect getInsets() 00448 { return comp->getInsets (); } 00449 00451 virtual bool isDeaf() 00452 { return comp->isDeaf (); } 00453 00455 virtual void SetDeaf (bool isDeaf) 00456 { comp->SetDeaf (isDeaf); } 00457 00459 virtual bool OnFrame() 00460 { return comp->OnFrame ();} 00461 00463 virtual void OnAdded() 00464 { comp->OnAdded ();} 00465 00467 virtual void OnResized() 00468 { comp->OnResized ();} 00469 00471 virtual void OnChildMoved() 00472 { comp->OnChildMoved(); } 00473 00475 virtual void OnRaise() 00476 { comp->OnRaise(); } 00477 00479 virtual void OnLower() 00480 { comp->OnLower(); } 00481 00483 virtual void OnChildHide() 00484 { comp->OnChildHide(); } 00485 00487 virtual void OnChildShow() 00488 { comp->OnChildShow(); } 00489 00491 virtual void Unlink() 00492 { comp->Unlink(); } 00493 00495 void LinkBelow (iAwsComponent *c) 00496 { comp->LinkBelow(c); } 00497 00499 void LinkAbove (iAwsComponent *c) 00500 { comp->LinkAbove(c); } 00501 00503 virtual void SetTopChild(iAwsComponent* child) 00504 { comp->SetTopChild(child); } 00505 00507 virtual void OnSetFocus() 00508 { comp->OnSetFocus(); } 00509 00511 virtual void OnUnsetFocus() 00512 { comp->OnUnsetFocus(); } 00513 00515 virtual void MarkToDelete() 00516 { comp->MarkToDelete(); } 00517 00519 virtual bool GetMarkToDelete() 00520 { return comp->GetMarkToDelete(); } 00521 }; 00522 00526 class awsEmbeddedComponentFactory : public iAwsComponentFactory 00527 { 00528 protected: 00529 iAws *wmgr; 00530 00531 public: 00536 awsEmbeddedComponentFactory(iAws *_wmgr) 00537 { 00538 wmgr = _wmgr; 00539 } 00540 00542 virtual ~awsEmbeddedComponentFactory() 00543 { 00544 } 00545 00547 iAws *WindowManager() { return wmgr; } 00548 00550 virtual void Register(const char *type) 00551 { 00552 wmgr->RegisterComponentFactory(this, type); 00553 } 00554 00556 virtual void RegisterConstant(const char *name, int value) 00557 { 00558 wmgr->GetPrefMgr()->RegisterConstant(name, value); 00559 } 00560 }; 00561 00562 #endif // __CS_AWS_EMBEDDED_COMPONENT_H__ 00563
Generated for Crystal Space by doxygen 1.4.6