135 lines
2.8 KiB
C++
135 lines
2.8 KiB
C++
|
|
|
|
#ifndef MAINSHELL_INCLUDED
|
|
#define MAINSHELL_INCLUDED
|
|
|
|
//#include "tcommon.h"
|
|
#include "menubar.h"
|
|
//#include "toolbar.h"
|
|
//#include "label.h"
|
|
//#include "panel.h"
|
|
// #include "tcli.h"
|
|
|
|
#undef DVAPI
|
|
#undef DVVAR
|
|
#ifdef TWIN_EXPORTS
|
|
#define DVAPI DV_EXPORT_API
|
|
#define DVVAR DV_EXPORT_VAR
|
|
#else
|
|
#define DVAPI DV_IMPORT_API
|
|
#define DVVAR DV_IMPORT_VAR
|
|
#endif
|
|
|
|
class TGenericCommandAction;
|
|
|
|
namespace TCli
|
|
{
|
|
class Usage;
|
|
}
|
|
|
|
class DVAPI TMainshell : public TWidget
|
|
{
|
|
protected:
|
|
static TMainshell *theShell;
|
|
virtual void create();
|
|
|
|
public:
|
|
#ifndef WIN32
|
|
bool m_ending;
|
|
#endif
|
|
|
|
static TMainshell *getMainshell()
|
|
{
|
|
return theShell;
|
|
}
|
|
static TMainshell *instance() { return theShell; }
|
|
|
|
TMainshell(string name);
|
|
|
|
virtual void init() {}
|
|
virtual void atExit() {}
|
|
|
|
virtual bool beforeShow() { return true; }
|
|
virtual void close();
|
|
virtual void closeWithoutQuestion();
|
|
//void pushStatusMessage(string );
|
|
//virtual void pushStatusMessage(std::wstring ) {}
|
|
//virtual void popStatusMessage() {};
|
|
|
|
//static void errorMessage(const string &str);
|
|
//static bool questionMessage(const string &str);
|
|
// static int multipleChoicesMessage(const string &str, vector<string> &choices);
|
|
|
|
// brutto (ma veloce da implementare :-)
|
|
// restituisce 0=yes, 1=no, 2=cancel
|
|
//static int yesNoCancelMessage(const string &str);
|
|
|
|
virtual TDimension getPreferredSize()
|
|
{
|
|
return TDimension(800, 600);
|
|
}
|
|
|
|
virtual bool isResizable() const { return true; }
|
|
|
|
virtual int getMainIconId() { return 0; } // ha senso solo su NT
|
|
virtual int getSplashScreenBitmapId() { return 0; } // ha senso solo su NT
|
|
|
|
//void setAccelerator(
|
|
// string acc,
|
|
// TGenericCommandAction *onKeyDown);
|
|
|
|
void setAccelerator(string acc, string guiCommandName);
|
|
string getAccelerator(string guiCommandName);
|
|
|
|
virtual void forwardMessage(string msg) {}
|
|
|
|
void contextHelp();
|
|
virtual void onContextHelp(string reference) {}
|
|
|
|
virtual string getAppId() const = 0;
|
|
|
|
virtual void defineUsage(TCli::Usage &usage);
|
|
};
|
|
|
|
class DVAPI TKeyListener
|
|
{
|
|
string m_keyName;
|
|
|
|
public:
|
|
TKeyListener(string keyName);
|
|
virtual ~TKeyListener();
|
|
|
|
virtual void onKeyDown() = 0;
|
|
virtual void onKeyUp(bool mouseEventReceived) = 0;
|
|
virtual bool autoreatIsEnabled() { return false; }
|
|
|
|
string getKeyName() const { return m_keyName; }
|
|
};
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
template <class T>
|
|
class TCommandKey : public TKeyListener
|
|
{
|
|
typedef void (T::*Method)();
|
|
T *m_target;
|
|
Method m_method;
|
|
|
|
public:
|
|
TCommandKey(string keyName, T *target, Method method)
|
|
: TKeyListener(keyName), m_target(target), m_method(method) {}
|
|
|
|
void onKeyDown()
|
|
{
|
|
(m_target->*m_method)();
|
|
}
|
|
void onKeyUp(bool mouseEventReceived) {}
|
|
};
|
|
|
|
DVAPI void enableShortcuts(bool on);
|
|
|
|
DVAPI void enableShortcuts(bool on);
|
|
|
|
DVAPI void enableShortcuts(bool on);
|
|
|
|
#endif
|