Просмотр исходного кода

Removed: now the help string is managed by the PropertyRow class

Luis Ibanez 25 лет назад
Родитель
Сommit
d21fca47a9

+ 0 - 233
Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.cxx

@@ -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

+ 0 - 53
Source/FLTKDialog/FLTKPropertyNameButtonWithHelp.h

@@ -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
-
-