11 #ifndef __AP_Interface__
12 #define __AP_Interface__
46 enum LM_SaveAppReason :
int;
61 const char *
const *names,
78 void wireInterface(UI_Manager *uims);
81 void unwireInterface(UI_Manager *uims);
85 bool readUIFile(
const char *ui_filename,
91 static FILE *createPreferenceFile(
const char *
filename);
96 bool readPreferenceFile(
const char *pref_filename,
107 UI_Value *findValueSymbol(
const char *symbol)
const;
112 UI_Value *getValueSymbol(
const char *symbol,
int create = 1);
123 void setObjectSymbol(
const char *symbol,
UI_Object *who,
128 UI_Object *getObjectSymbol(
const char *symbol)
const;
132 UI_Feel *getFeelSymbol(
const char *symbol)
const;
147 void setKeyDelegateSymbol(
const char *symbol,
152 bool hasKeyDelegateSymbol(
const char *symbol)
const;
164 void removeObjectSymbol(
const char *symbol);
167 void removeValueSymbol(
const char *symbol);
174 return dynamic_cast<T *
>(getObjectSymbol(name));
182 return dynamic_cast<T *
>(findValueSymbol(name));
197 void setKeyBindingProxySrc(
const char *symbol, UI_Feel *
src,
199 void addKeyBindingProxyRef(
const char *symbol, UI_Feel *
ref,
207 virtual void initApplication(UI_Manager *uims,
214 virtual void outputUsage(
int argc,
const char **argv)
const;
218 void resetApplication();
225 virtual int saveAppData(
const char *
filename);
226 virtual int loadAppState();
227 virtual int saveAppState();
228 virtual void saveOnCoreDump();
233 bool loadUIInitPrefs();
236 void saveUIInitPrefs(
237 const char * layout_level,
243 bool restoreUIInitPrefs();
246 static const std::pair<const char *, int> theFileChooserStyleMap[];
249 static int mapStrToInt(
const char *
label,
250 const std::pair<const char *, int> *map);
251 static const char * mapIntToStr(
int index,
252 const std::pair<const char *, int> *map);
263 static void setAppExitCode(
int exit_code);
264 static int getAppExitCode();
267 static bool isAppExiting();
271 static const char *getStartupDesktop();
274 class InstallSignalHandlersHelper;
279 static void clearTheMainApplication();
290 void processKeyBindingProxyRequests();
293 static void loadWindowGeometry(
295 bool default_maximized,
300 static bool getWindowGeometry(
int &
width,
int &
height,
304 static bool getSaveWindowGeoPref();
305 static void saveWindowGeoPref();
306 static bool loadWindowGeoPref(
311 class si_CrashHandler;
312 friend class si_CrashHandler;
316 static void installSignalHandlers();
319 void assignUIInitPrefs();
321 static const char *mainApplicationName();
324 const char *appname,
const char *
filename);
328 static void installCallbacks();
330 static void powerFailHandler(
331 LM_SaveAppReason reason,
334 static void terminationWarning(
uint nseconds);
341 ProxyRequest() : myTarget(nullptr) {}
352 NamedProxyRequestMap *myKeyBindingProxyRequestTable;
378 static void setAppForeground();
384 template <
typename APP_T>
389 {
return UTmakeUnique<APP_T>(); }
404 template<
class ObjectClass>
inline
410 template<
class ValueClass>
inline
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
ValueClass * SIgetValue(const AP_Interface *app, const char *name)
GT_API const UT_StringHolder filename
GLuint GLsizei const GLchar * label
T * findValue(const char *name) const
GLsizei const GLfloat * value
AP_InterfaceUPtr createApplication() override
void APregister(AP_Interface *app)
UT_SymbolMap< UI_Value * > UI_NamedValueMap
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
virtual void handleEvent(UI_Event *event)
GLint GLsizei GLsizei height
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
const UT_String & getName() const
Return the name passed in the constructor.
UT_UniquePtr< AP_Interface > AP_InterfaceUPtr
static AP_Interface * getMainApplication()
const char *const * myValueNames
UI_EventMethod const * myMethods
GLuint const GLchar * name
UT_SymbolMap< UI_Object * > UI_NamedObjectMap
UI_NamedObjectMap * getObjectTable() const
UI_Object * getObjectSymbol(const char *symbol) const
GLfloat GLfloat GLfloat GLfloat h
GLenum GLsizei GLsizei GLint * values
T * findObject(const char *name) const
void(UI_Object::* UI_EventMethod)(UI_Event *)
virtual const char * className() const
GLubyte GLubyte GLubyte GLubyte w
UI_Value * findValueSymbol(const char *symbol) const
Find the UI_Value for the given named value symbol.
UT_SymbolMap< UI_KeyDelegateSPtr > UI_NamedKeyDelegateMap
void APderegister(AP_Interface *app)
UI_NamedValueMap * getValueTable() const
UT_SharedPtr< UI_KeyDelegate > UI_KeyDelegateSPtr
ObjectClass * SIgetObject(const AP_Interface *app, const char *name)