summaryrefslogtreecommitdiffstats
path: root/Source/FLTKDialog
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FLTKDialog')
-rw-r--r--Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx233
-rw-r--r--Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h53
2 files changed, 0 insertions, 286 deletions
diff --git a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx b/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx
deleted file mode 100644
index 1fe27b3..0000000
--- a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx
+++ /dev/null
@@ -1,233 +0,0 @@
-// #include <FLTKPropertyNameButtonWithHelp.h>
-#include <FL/Fl.H>
-#include <FL/fl_ask.H>
-#include <FL/Fl_Menu_Button.H>
-#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 09d6e60..0000000
--- a/Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef FLTKPropertyNameButtonWithHelp_h
-#define FLTKPropertyNameButtonWithHelp_h
-
-#include <FL/Fl_Tile.H>
-#include <FL/Fl_Input.H>
-#include <FL/Fl_Box.H>
-#include <FL/Fl_Button.H>
-#include <FL/Fl_Window.H>
-#include <string>
-
-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
-
-