1
0
Fork 0
flightgear/src/GUI/prop_picker.hxx
curt 2119db35c3 This is step "1" of probably "many" in the process of separating out the
scene management code and organizing it within simgear.  My strategy is
to identify the code I want to move, and break it's direct flightgear
dependencies.  Then it will be free to move over into the simgear package.

- Moved some property specific code into simgear/props/
- Split out the condition code from fgfs/src/Main/fg_props and put it
  in it's own source file in simgear/props/
- Created a scene subdirectory for scenery, model, and material property
  related code.
- Moved location.[ch]xx into simgear/scene/model/
- The location and condition code had dependencies on flightgear's global
  state (all the globals-> stuff, the flightgear property tree, etc.)  SimGear
  code can't depend on it so that data has to be passed as parameters to the
  functions/methods/constructors.
- This need to pass data as function parameters had a dramatic cascading
  effect throughout the FlightGear code.
2003-05-06 23:46:24 +00:00

103 lines
2.4 KiB
C++
Executable file

/*
prop_picker.hxx
*/
#include <plib/pu.h>
#include <stdio.h>
#include "gui.h"
#include <simgear/props/props.hxx>
void prop_pickerInit();
void prop_pickerView( puObject * );
void prop_pickerRefresh();
void prop_editInit( const char * name, const char * value );
void prop_editOpen( const char * name, const char * value );
class fgPropPicker ;
class fgPropEdit ;
class fgPropPicker :
public puDialogBox,
public SGPropertyChangeListener
{
static void handle_select ( puObject *b ) ;
static void input_entered ( puObject *b ) ;
static void fgPropPickerHandleSlider ( puObject * slider );
static void fgPropPickerHandleArrow ( puObject *arrow );
static void fgPropPickerHandleOk ( puObject* b );
void delete_arrays () ;
/** update the text string in the puList using the given node and
updating the requested offset. The value of dotFiles is taken
into account before the index is applied, i.e this should be
an index into 'children' */
void updateTextForEntry(int index);
char** files ;
int num_files ;
int arrow_count ;
char startDir [ PUSTRING_MAX * 2 ] ;
SGPropertyNode_ptr* children;
int num_children;
/** set if we're display the . and .. entries at the start of the
list */
bool dotFiles;
/* puInput *input ; */
protected:
puFrame *frame ;
puListBox *list_box ;
puSlider *slider ;
puOneShot *cancel_button ;
puOneShot *ok_button ;
puArrowButton *down_arrow ;
puArrowButton *up_arrow ;
public:
puText *proppath ;
void find_props () ;
fgPropPicker ( int x, int y, int w, int h, int arrows,
const char *dir, const char *title = "Pick a file" ) ;
~fgPropPicker () {;}
static void go_up_one_directory ( char *fname ) ;
static void chop_file ( char *fname ) ;
// over-ride the method from SGPropertyNodeListener
virtual void valueChanged (SGPropertyNode * node);
} ;
class fgPropEdit : public puDialogBox
{
static void fgPropEditHandleCancel ( puObject *b ) ;
static void fgPropEditHandleOK ( puObject* b );
protected:
puFrame *frame ;
puOneShot *cancel_button ;
puOneShot *ok_button ;
public:
puText *propname ;
puInput *propinput ;
char propPath [ PUSTRING_MAX * 2 ] ;
fgPropEdit ( const char *name, const char *value, char *proppath ) ;
~fgPropEdit () {;}
static void go_up_one_directory ( char *fname ) ;
static void chop_file ( char *fname ) ;
} ;