00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef PG_PROPERTYFIELD_BUTTON_H
00031 #define PG_PROPERTYFIELD_BUTTON_H
00032
00033 #include "pgpropertyeditor.h"
00034 #include "pgbutton.h"
00035
00042 class PG_PropertyField_Button : public PG_PropertyEditor::PG_PropertyEditorField, public SigC::Object {
00043 PG_Button* button;
00044 bool switchInverted;
00045
00046 bool click( ) {
00047 sigClick(this);
00048 return true;
00049 }
00050
00051 public:
00052 typedef PG_Signal1<PG_PropertyField_Button*> ButtonPropertySignal;
00053 ButtonPropertySignal sigClick;
00054
00061 PG_PropertyField_Button( PG_PropertyEditor* propertyEditor, const std::string& name, const std::string& buttonname, int height = -1 ) {
00062 PG_Rect r = propertyEditor->RegisterProperty( name, this, height );
00063 button = new PG_Button( propertyEditor, PG_Rect( r.x + 2, r.y + 2, r.w - 4, r.h -4 ), PG_NULLSTR, -1, propertyEditor->GetStyleName("ButtonProperty") );
00064 button->SetText( buttonname );
00065 button->sigClick.connect( SigC::slot(*this, &PG_PropertyField_Button::click));
00066 };
00067
00068 bool Valid() {
00069 return true;
00070 };
00071 bool Apply() {
00072 return true;
00073 };
00074 void Reload() {
00075 };
00076
00077 PG_Button* GetButton()
00078 {
00079 return button;
00080 };
00081 };
00082
00083 #endif