214 lines
5.8 KiB
C++
Executable File
214 lines
5.8 KiB
C++
Executable File
#ifndef __TREECTRL_H
|
|
#define __TREECTRL_H
|
|
|
|
#ifndef __MASKFLD_H
|
|
#include "maskfld.h"
|
|
#endif
|
|
|
|
#ifndef __VARIANT_H
|
|
#include "variant.h"
|
|
#endif
|
|
|
|
// Native control host window: autresizes its unique child control
|
|
class TControl_host_window : public TField_window
|
|
{
|
|
protected:
|
|
WINDOW _ctrl;
|
|
|
|
protected:
|
|
virtual long handler(WINDOW win, EVENT* ep);
|
|
virtual void set_focus();
|
|
|
|
TControl_host_window(int x, int y, int dx, int dy,
|
|
WINDOW parent, TWindowed_field* owner);
|
|
};
|
|
|
|
class TGolem_client_field : public TWindowed_field
|
|
{
|
|
TGolem_field* _driver;
|
|
|
|
protected: // TObject
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
virtual bool parse_item(TScanner& scan);
|
|
|
|
public:
|
|
TGolem_field* driver() const { return _driver; }
|
|
virtual bool on_hit();
|
|
|
|
TGolem_client_field(TMask* m);
|
|
virtual ~TGolem_client_field();
|
|
};
|
|
|
|
// Implemented in tree.cpp
|
|
class TTree;
|
|
|
|
class TTree_field : public TWindowed_field
|
|
{
|
|
public: // TObject
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
|
|
public:
|
|
TTree* tree() const;
|
|
void set_tree(TTree* t);
|
|
virtual void force_update();
|
|
|
|
void hide_leaves(bool yes = true);
|
|
void show_leaves(bool yes = true) { hide_leaves(!yes); }
|
|
virtual bool select_current();
|
|
virtual bool goto_selected();
|
|
|
|
virtual void set_header(const char* head);
|
|
virtual void set_row_height(int rh);
|
|
|
|
virtual int selection(TString_array& ids) const;
|
|
|
|
TTree_field(TMask* m) : TWindowed_field(m) { }
|
|
virtual ~TTree_field() { }
|
|
};
|
|
|
|
class TOutlook_field : public TWindowed_field
|
|
{
|
|
TString4 _str; // Current selection
|
|
|
|
protected: // TMask_field
|
|
virtual const TString& get_window_data();
|
|
virtual void set_window_data(const char* data);
|
|
virtual bool on_key(KEY key);
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
|
|
public:
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
int add_item(short icon, const char* text, int flags);
|
|
void create(short dlg, int x, int y, int dx, int dy, WINDOW parent);
|
|
void clear();
|
|
|
|
int items() const;
|
|
virtual void set(const char* data);
|
|
virtual const TString& get() const;
|
|
virtual bool metro_style() const { return false; }
|
|
|
|
TOutlook_field(TMask* m) : TWindowed_field(m) { }
|
|
virtual ~TOutlook_field() { }
|
|
};
|
|
|
|
class TMetrolist_field : public TOutlook_field
|
|
{
|
|
public:
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
virtual bool metro_style() const { return true; }
|
|
TMetrolist_field(TMask* m) : TOutlook_field(m) { }
|
|
};
|
|
|
|
class TSlider_field : public TWindowed_field
|
|
{
|
|
short _buddy;
|
|
real _range_min, _range_max;
|
|
|
|
protected: // TMask_field
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
virtual const TString& get_window_data();
|
|
virtual void set_window_data(const char* data);
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
virtual bool parse_item(TScanner& scanner);
|
|
|
|
const char* get_buddy() const;
|
|
void set_buddy(const char* b) const;
|
|
|
|
public:
|
|
virtual void set(const char* data);
|
|
virtual const TString& get() const;
|
|
virtual bool on_hit();
|
|
|
|
void set_range(const real& mi, const real& ma);
|
|
void set_range(int mi, int ma);
|
|
void range(real& mi, real& ma);
|
|
|
|
TSlider_field(TMask* m);
|
|
virtual ~TSlider_field() { }
|
|
};
|
|
|
|
|
|
class TProp_field : public TWindowed_field
|
|
{
|
|
protected:
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
virtual bool parse_item(TScanner& scanner);
|
|
|
|
public:
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
void freeze(bool on);
|
|
bool set_property(const char* name, const char* value, const char* label = NULL);
|
|
bool set_property(const char* name, COLOR value, const char* label = NULL);
|
|
bool set_property(const char* name, long value, const char* label = NULL);
|
|
bool set_property(const char* name, bool value, const char* label = NULL);
|
|
|
|
bool has_property(const char* name) const;
|
|
bool remove_property(const char* name);
|
|
bool enable_property(const char* name, bool on = true);
|
|
bool disable_property(const char* name) { return enable_property(name, false); }
|
|
|
|
const TString& get_property(const char* name) const;
|
|
COLOR get_color_property(const char* name) const;
|
|
long get_long_property(const char* name) const;
|
|
bool get_bool_property(const char* name) const;
|
|
bool get_var_property(const char* name, TVariant& var) const;
|
|
|
|
bool for_each_property(PROP_CALLBACK pcb, void* jolly);
|
|
bool current_property(TString& name, TVariant& value) const;
|
|
|
|
TProp_field(TMask* m);
|
|
};
|
|
|
|
class TTreelist_field : public TTree_field
|
|
{
|
|
protected: // TObject
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
virtual bool parse_item(TScanner& scanner);
|
|
|
|
public:
|
|
TTreelist_field(TMask* m);
|
|
virtual ~TTreelist_field() { }
|
|
};
|
|
|
|
class THTML_field : public TWindowed_field
|
|
{
|
|
protected: // TObject
|
|
virtual word class_id() const;
|
|
virtual bool is_kind_of(word cid) const;
|
|
|
|
protected: // TWindowed_field
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
virtual void set_window_data(const char* data);
|
|
|
|
public:
|
|
THTML_field(TMask* m);
|
|
virtual ~THTML_field() { }
|
|
};
|
|
|
|
#endif
|
|
|