diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2002-03-20 18:16:16 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2002-03-20 18:16:16 (GMT) |
commit | 49bcc1ad51e25b0d7c08a2861b997a9d10cf6379 (patch) | |
tree | 5081912d7925b370dd196c9632f3d231ffdf05e6 /Source/FLTKDialog/FLTKPropertyItemRow.cxx | |
parent | 2990c3db571a29a00fc59b5c572d5aa6cbe8d117 (diff) | |
download | CMake-49bcc1ad51e25b0d7c08a2861b997a9d10cf6379.zip CMake-49bcc1ad51e25b0d7c08a2861b997a9d10cf6379.tar.gz CMake-49bcc1ad51e25b0d7c08a2861b997a9d10cf6379.tar.bz2 |
ENH: remove fltk dialog as it is no longer supported
Diffstat (limited to 'Source/FLTKDialog/FLTKPropertyItemRow.cxx')
-rw-r--r-- | Source/FLTKDialog/FLTKPropertyItemRow.cxx | 386 |
1 files changed, 0 insertions, 386 deletions
diff --git a/Source/FLTKDialog/FLTKPropertyItemRow.cxx b/Source/FLTKDialog/FLTKPropertyItemRow.cxx deleted file mode 100644 index b78c563..0000000 --- a/Source/FLTKDialog/FLTKPropertyItemRow.cxx +++ /dev/null @@ -1,386 +0,0 @@ -/*========================================================================= - - Program: Insight Segmentation & Registration Toolkit - Module: $RCSfile$ - Language: C++ - Date: $Date$ - Version: $Revision$ - - Copyright (c) 2002 Insight Consortium. All rights reserved. - See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*/ -#include "FLTKPropertyItemRow.h" -#include <FL/Fl.H> -#include <FL/Fl_Window.H> -#include <FL/Fl_Button.H> -#include <FL/Fl_Box.H> -#include <FL/Fl_Input.H> -#include <FL/Fl_Tile.H> -#include <FL/fl_ask.H> -#include <FL/fl_file_chooser.H> -#include <FL/Fl_Color_Chooser.H> -#include <FL/Fl_Menu_Button.H> -#include "../cmCacheManager.h" -#include "FLTKPropertyList.h" -#include "CMakeSetupGUIImplementation.h" -#include <stdio.h> - - -namespace fltk { - - - -CMakeSetupGUIImplementation * PropertyItemRow::m_CMakeSetup = 0; - - - - -PropertyItemRow -::PropertyItemRow( PropertyItem * pItem ):Fl_Tile(0,0,10,10,"") -{ - - m_PropertyItem = pItem; - m_ItemValue = new ItemValue; - - const unsigned int fontsize = 11; - const unsigned int nameWidth = 200; - const unsigned int textWidth = 1400; - const unsigned int checkWidth = textWidth; - const unsigned int browseWidth = 20; - const unsigned int firstColumn = 0; - - const unsigned int secondColumn = nameWidth; - - const unsigned int rowHeight = 20; - - size( nameWidth + textWidth , rowHeight ); - - // Make the parent Fl_Pack widget at least a row wide. - parent()->size( nameWidth + textWidth , rowHeight ); - - m_NameButton = new - Fl_Button( firstColumn, 0, nameWidth, rowHeight, - m_PropertyItem->m_propName.c_str() ); - - m_NameButton->align( FL_ALIGN_CLIP | FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - m_NameButton->labelsize( fontsize ); - m_NameButton->box( FL_DOWN_BOX ); - m_NameButton->size( secondColumn, rowHeight ); - m_NameButton->callback( NameButtonCallback, (void *)m_PropertyItem ); - if( m_PropertyItem->m_NewValue ) - { - m_NameButton->color(FL_RED); - } - - switch( m_PropertyItem->m_nItemType ) - { - case PropertyList::COMBO: - { - break; - } - case PropertyList::EDIT: - { - - Fl_Input * input = new - Fl_Input( secondColumn, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - input->callback( InputTextCallback, (void *)m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - case PropertyList::COLOR: - { - Fl_Button * colorButton = new - Fl_Button( secondColumn, 0, textWidth ,rowHeight ,""); - colorButton->labelsize( fontsize ); - //colorButton->color(); - colorButton->callback( ColorSelectionCallback, (void *)m_PropertyItem ); - - break; - } - case PropertyList::FILE: - { - - Fl_Button * browseButton = new - Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); - browseButton->labelsize( fontsize ); - - Fl_Input * input = new - Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - - m_ItemValue->m_InputText = input; - m_ItemValue->m_PropertyItem = m_PropertyItem; - - browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); - input->callback( InputTextCallback, m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - case PropertyList::CHECKBOX: - { - Fl_Button * button = new - Fl_Button( secondColumn, 0, checkWidth ,rowHeight ,""); - button->align( FL_ALIGN_INSIDE | FL_ALIGN_LEFT ); - button->callback( CheckButtonCallback, (void *)m_PropertyItem ); - - if( m_PropertyItem->m_curValue == "ON" ) - { - button->label(" ON "); - button->value(1); - } - else if( m_PropertyItem->m_curValue == "OFF" ) - { - button->label(" OFF "); - button->value(0); - } - button->type( FL_TOGGLE_BUTTON ); - button->labelsize( fontsize ); - break; - } - case PropertyList::PATH: - { - - Fl_Button * browseButton = new - Fl_Button( secondColumn, 0, browseWidth ,rowHeight ,"..."); - browseButton->labelsize( fontsize ); - - Fl_Input * input = new - Fl_Input( secondColumn+browseWidth, 0, textWidth ,rowHeight ,""); - input->value( m_PropertyItem->m_curValue.c_str() ); - input->textsize( fontsize ); - - m_ItemValue->m_InputText = input; - m_ItemValue->m_PropertyItem = m_PropertyItem; - - browseButton->callback( BrowsePathCallback, (void *)m_ItemValue ); - input->callback( InputTextCallback, (void *)m_PropertyItem ); - input->when( FL_WHEN_CHANGED ); - - break; - } - break; - default: - fl_alert("Unkown item type %d",m_PropertyItem->m_nItemType); - break; - } - - - end(); // Close the inclusion of widgets in the Tile object - -} - - - - - -PropertyItemRow::~PropertyItemRow( ) -{ - delete m_ItemValue; -} - - - -void PropertyItemRow -::SetCMakeSetupGUI( CMakeSetupGUIImplementation * cmakeSetup ) -{ - m_CMakeSetup = cmakeSetup; -} - - - -void -PropertyItemRow:: -NameButtonCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * button = (Fl_Button *)widget; - PropertyItem * pItem = (PropertyItem *)data; - - static Fl_Menu_Button * popupMenu = 0; - if( !popupMenu ) - { - int lastMousePositionX = Fl::event_x(); - int lastMousePositionY = Fl::event_y(); - popupMenu = new Fl_Menu_Button(lastMousePositionX, - lastMousePositionY,100,200); - } - - popupMenu->type( Fl_Menu_Button::POPUP3 ); - popupMenu->add("Help|Remove|Properties..."); - popupMenu->popup(); - - typedef enum { - HELP=0, - REMOVE, - PROPERTIES - } MenuOptions; - - - switch( popupMenu->value() ) - { - case HELP: - fl_message( pItem->m_HelpString.c_str() ); - break; - case REMOVE: // Remove - { - const char * propertyName = pItem->m_propName.c_str(); - 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 = dynamic_cast<Fl_Group *>(button->parent()); - // Get the grandParent: Fl_Pack with the property list - Fl_Group * grandParentGroup = dynamic_cast<Fl_Group *>( parentGroup->parent() ); - // Remove the row from the list - grandParentGroup->remove( *parentGroup ); - // Destroy the row - delete parentGroup; // Patricide... ? - // Redraw the list - grandParentGroup->redraw(); - FillCacheManagerFromCacheGUI(); - return; - } - break; - } - case PROPERTIES: // Properties - break; - } -} - - - -void -PropertyItemRow:: -FillCacheManagerFromCacheGUI( void ) -{ - if( m_CMakeSetup ) - { - m_CMakeSetup->FillCacheManagerFromCacheGUI(); - } -} - - - -void -PropertyItemRow:: -CheckButtonCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * button = (Fl_Button *)widget; - PropertyItem * pItem = (PropertyItem *)data; - - int value = button->value(); - - if( value ) - { - button->label(" ON "); - pItem->m_curValue = "ON"; - } - else - { - button->label(" OFF "); - pItem->m_curValue = "OFF"; - } - - pItem->m_Dirty = true; - - button->redraw(); - - FillCacheManagerFromCacheGUI(); - -} - - - -void -PropertyItemRow:: -InputTextCallback( Fl_Widget * widget, void * data) -{ - Fl_Input * input = (Fl_Input *)widget; - PropertyItem * item = (PropertyItem *)data; - - item->m_curValue = input->value(); - - item->m_Dirty = true; - - FillCacheManagerFromCacheGUI(); - -} - - - -void -PropertyItemRow:: -ColorSelectionCallback( Fl_Widget * widget, void * data) -{ - Fl_Button * colorButton = (Fl_Button *)widget; - PropertyItem * propertyItem = (PropertyItem *)data; - - static Fl_Color colorIndex = FL_FREE_COLOR; - - unsigned char red = 0; - unsigned char blue = 0; - unsigned char green = 0; - fl_color_chooser("Please pick a color",red,green,blue); - char buffer[300]; - sprintf( buffer,"RGB(%d,%d,%d)", red, green, blue ); - propertyItem->m_curValue = buffer; - Fl::set_color( colorIndex, red, green, blue ); - colorButton->color( colorIndex ); - colorIndex = (Fl_Color)( colorIndex + 1 ); - if( colorIndex == FL_FREE_COLOR + FL_NUM_FREE_COLOR ) - { - fl_alert("Maximum number of free colors used, recycling..."); - colorIndex = FL_FREE_COLOR; - } - - propertyItem->m_Dirty = true; - - colorButton->redraw(); - - FillCacheManagerFromCacheGUI(); - -} - - - - - - -void -PropertyItemRow:: -BrowsePathCallback( Fl_Widget * widget, void * data) -{ - ItemValue * itemValue = (ItemValue *)data; - Fl_Input * inputText = itemValue->m_InputText; - PropertyItem * propertyItem = itemValue->m_PropertyItem; - - const char * newpath = - fl_file_chooser("Select a path","*", inputText->value() ); - - if( newpath ) - { - propertyItem->m_curValue = newpath; - inputText->value( newpath ); - } - - propertyItem->m_Dirty = true; - - FillCacheManagerFromCacheGUI(); - -} - - - - -} // end namespace fltk |