Planeshift
|
00001 #ifndef PAWS_SLOT_HEADER 00002 #define PAWS_SLOT_HEADER 00003 00004 00005 #include "paws/pawswidget.h" 00006 00007 //============================================================================= 00008 // Forward Declarations 00009 //============================================================================= 00010 class psSlotManager; 00011 class pawsTextBox; 00012 00013 00014 //============================================================================= 00015 // Classes 00016 //============================================================================= 00017 00018 00019 class pawsSlot : public pawsWidget 00020 { 00021 public: 00022 pawsSlot(); 00023 ~pawsSlot(); 00024 00025 void SetDrag( bool isDragDrop ) { dragDrop = isDragDrop; } 00026 void SetEmptyOnZeroCount( bool emptyOnZeroCount ) { this->emptyOnZeroCount = emptyOnZeroCount; } 00027 bool Setup( iDocumentNode* node ); 00028 void SetContainer( int id ) { containerID = id; } 00029 00030 bool OnMouseDown( int button, int modifiers, int x, int y ); 00031 void Draw(); 00032 void SetToolTip( const char* text ); 00033 00034 int StackCount() { return stackCount; } 00035 void StackCount( int newCount ); 00036 00037 int GetPurifyStatus(); 00038 void SetPurifyStatus(int status); 00039 00040 void PlaceItem( const char* imageName, const char* meshFactName, 00041 const char* matName = NULL, int count = 0 ); 00042 iPawsImage* Image() { return image; } 00043 const char *ImageName(); 00044 00045 const char *GetMeshFactName() 00046 { 00047 return meshfactName; 00048 } 00049 00050 const char *GetMaterialName() 00051 { 00052 return materialName; 00053 } 00054 00055 const csString & SlotName() const { return slotName; } 00056 void SetSlotName(const csString & name) { slotName = name; } 00057 00058 int ContainerID() { return containerID; }; 00059 int ID() { return slotID; } 00060 void SetSlotID( int id ) { slotID = id; } 00061 00062 virtual void Clear(); 00063 bool IsEmpty() { if(!reserved) return empty; else return false; } 00064 00065 void Reserve() { reserved = true; } 00066 00070 void DrawStackCount(bool value); 00071 00075 bool IsDrawingStackCount() { return drawStackCount; } 00076 00077 bool SelfPopulate( iDocumentNode *node); 00078 00079 void OnUpdateData(const char *dataname,PAWSData& value); 00080 00081 void ScalePurifyStatus(); 00082 00083 bool IsBartender() { return isBartender; } 00084 void SetBartender( bool t) { isBartender = t; } 00085 00086 void SetBartenderAction(csString& act) { action = act; } 00087 csString &GetAction() { return action; } 00088 void clearBartenderAction() { action.Empty(); } 00089 00090 bool GetLock() { return locked; } 00091 void SetLock( bool state ) { locked = state; } 00092 protected: 00093 psSlotManager* mgr; 00094 csString meshfactName; 00095 csString materialName; 00096 csString slotName; 00097 int containerID; 00098 int slotID; 00099 int stackCount; 00100 int purifyStatus; 00101 bool empty; 00102 bool dragDrop; 00103 bool drawStackCount; 00104 bool reserved; 00105 bool locked; 00106 00107 csRef<iPawsImage> image; 00108 pawsWidget* purifySign; 00109 pawsTextBox* stackCountLabel; 00110 bool handleMouseClicks; 00111 bool emptyOnZeroCount; 00112 00113 bool isBartender; 00114 csString action; 00115 }; 00116 00117 CREATE_PAWS_FACTORY( pawsSlot ); 00118 00119 #endif 00120