diff --git a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx b/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx deleted file mode 100644 index 1fe27b3ec..000000000 --- a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx +++ /dev/null @@ -1,233 +0,0 @@ -// #include -#include -#include -#include -#include "../cmCacheManager.h" -#include "FLTKPropertyNameButtonWithHelp.h" - - -namespace fltk { - -Fl_Window * PropertyNameButtonWithHelp::helpBlob = 0; -Fl_Box * PropertyNameButtonWithHelp::helpText = 0; -unsigned int PropertyNameButtonWithHelp::counter = 0; -int PropertyNameButtonWithHelp::lastMousePositionX = 0; -int PropertyNameButtonWithHelp::lastMousePositionY = 0; - - - -PropertyNameButtonWithHelp -::PropertyNameButtonWithHelp(int x,int y, int w, int h, const char * l): -Fl_Button(x,y,w,h,l) -{ - counter++; // one more object instantiated -} - - - - -PropertyNameButtonWithHelp:: -~PropertyNameButtonWithHelp( ) -{ - counter--; - if( counter == 0 ) - { - delete helpBlob; - delete helpText; - } -} - - - -void -PropertyNameButtonWithHelp -::SetHelpText( const char * text ) -{ - m_HelpText = text; -} - - - -void -PropertyNameButtonWithHelp -::ShowHelp( void ) -{ - if( helpBlob ) - { - helpBlob->show(); - } -} - - -void -PropertyNameButtonWithHelp -::HideHelp( void ) -{ - if( helpBlob ) - { - helpBlob->hide(); - } -} - - - - -int -PropertyNameButtonWithHelp:: -handle( int event ) -{ - - static bool helpBlobVisible = false; - - const float delayForShowingHelpBlob = 1.0; // seconds - - const int maxWidth = 300; - const int lineHeight = 20; - - - // Create the help blob window if it doesn't exist - if( !helpBlob ) - { - helpBlob = new Fl_Window(0,0,200,20,""); - helpBlob->border( 0 ); - helpText = new Fl_Box(0,0,200,20,""); - helpBlob->end(); - Fl_Color yellowHelp = FL_YELLOW; - helpBlob->color( yellowHelp ); - helpText->color( yellowHelp ); - helpText->align( FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_WRAP ); - } - - int eventManaged = 0; - - switch( event ) - { - case FL_ENTER: - { - lastMousePositionX = Fl::event_x(); - lastMousePositionY = Fl::event_y(); - const float factor = helpText->labelsize() * 0.5; - int height = lineHeight; - int area = (int)( m_HelpText.size() * factor ); - int width = area; - if( width > maxWidth ) - { - width = maxWidth; - height = area / maxWidth * lineHeight; - if( area % maxWidth != 0 ) - { - height += lineHeight; - } - } - helpText->size( width, height ); - helpBlob->size( width, height ); - helpText->label( m_HelpText.c_str() ); - Fl_Widget * parent = this->parent(); - Fl::add_timeout( delayForShowingHelpBlob, ShowHelpBlobCallback, (void *)parent ); - helpBlobVisible = true; - eventManaged = 0; - break; - } - case FL_LEAVE: - { - if( helpBlobVisible ) - { - helpBlobVisible = false; - helpBlob->hide(); - } - eventManaged = 0; - break; - } - case FL_MOVE: - if( helpBlobVisible ) - { - helpBlobVisible = false; - helpBlob->hide(); - } - eventManaged = 0; - break; - case FL_PUSH: - if( Fl::event_button() == FL_RIGHT_MOUSE ) - { - PopupMenu(); - } - eventManaged = 0; - break; - default: - eventManaged = 0; - } - - - return eventManaged; - -} - -void -PropertyNameButtonWithHelp:: -ShowHelpBlobCallback( void * data ) -{ - - Fl_Widget * thisWidget = Fl::belowmouse(); - Fl_Widget * eventWidget = (Fl_Widget *)data; - - if( thisWidget == eventWidget ) - { - - helpBlob->position( lastMousePositionX, lastMousePositionY ); - helpBlob->show(); - } - -} - - - -//////////////////////////////////////////////////////////////// -// This popup menu is displayed when the -// right mouse button is pressed -void -PropertyNameButtonWithHelp:: -PopupMenu(void) -{ - static Fl_Menu_Button * popupMenu = 0; - if( !popupMenu ) - { - popupMenu = new Fl_Menu_Button(0,0,100,200); - } - - popupMenu->type( Fl_Menu_Button::POPUP3 ); - popupMenu->add("Remove|Properties..."); - popupMenu->popup(); - - switch( popupMenu->value() ) - { - case 0: // Remove - { - const char * propertyName = label(); - int answer = fl_ask( "Do you want to remove property %s", propertyName ); - if( answer == 1 ) - { - // Remove the entry from the cache - cmCacheManager::GetInstance()->RemoveCacheEntry( propertyName ); - // Get the parent: Fl_Tile that manages the whole row in the GUI - Fl_Group * parentGroup = (Fl_Group *) parent(); - // Get the grandParent: Fl_Pack with the property list - Fl_Group * grandParentGroup = (Fl_Group *) parentGroup->parent(); - // Remove the row from the list - grandParentGroup->remove( *parentGroup ); - // Destroy the row - delete parentGroup; // Patricide... ? - // Redraw the list - grandParentGroup->redraw(); - return; - } - break; - } - case 1: // Properties - break; - } -} - - - - -} // end namespace fltk diff --git a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h b/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h deleted file mode 100644 index 09d6e604f..000000000 --- a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef FLTKPropertyNameButtonWithHelp_h -#define FLTKPropertyNameButtonWithHelp_h - -#include -#include -#include -#include -#include -#include - -namespace fltk { - - -/** - - Helper class for managing help blobs over the property name - - */ -class PropertyNameButtonWithHelp : public Fl_Button -{ - public: - PropertyNameButtonWithHelp(int x,int y,int w, int h,const char *l); - virtual ~PropertyNameButtonWithHelp(); - int handle(int event); - void SetHelpText( const char * helpText); - void ShowHelp(void); - void HideHelp(void); - - static void ShowHelpBlobCallback( void * ); - - void PopupMenu( void ); - - private: - - std::string m_HelpText; - - // Class variables - static Fl_Window * helpBlob; - static Fl_Box * helpText; - static unsigned int counter; - static int lastMousePositionX; - static int lastMousePositionY; - -}; - - - - -} // end namespace fltk - -#endif - -