11 #ifndef __AP_Interface__
12 #define __AP_Interface__
57 const char *
const *names,
74 void wireInterface(UI_Manager *uims);
77 void unwireInterface(UI_Manager *uims);
83 bool readUIFile(
const char *ui_filename,
89 static FILE *createPreferenceFile(
const char *
filename);
94 bool readPreferenceFile(
const char *pref_filename,
105 UI_Value *findValueSymbol(
const char *symbol)
const;
110 UI_Value *getValueSymbol(
const char *symbol,
int create = 1);
121 void setObjectSymbol(
const char *symbol,
UI_Object *who,
126 UI_Object *getObjectSymbol(
const char *symbol)
const;
130 UI_Feel *getFeelSymbol(
const char *symbol)
const;
145 void setKeyDelegateSymbol(
const char *symbol,
150 bool hasKeyDelegateSymbol(
const char *symbol)
const;
162 void removeObjectSymbol(
const char *symbol);
165 void removeValueSymbol(
const char *symbol);
172 return dynamic_cast<T *
>(getObjectSymbol(name));
180 return dynamic_cast<T *
>(findValueSymbol(name));
195 void setKeyBindingProxySrc(
const char *symbol, UI_Feel *
src,
197 void addKeyBindingProxyRef(
const char *symbol, UI_Feel *
ref,
205 virtual void initApplication(UI_Manager *uims,
212 virtual void outputUsage(
int argc,
const char **argv)
const;
216 void resetApplication();
223 virtual int saveAppData(
const char *
filename);
224 virtual int loadAppState();
225 virtual int saveAppState();
226 virtual void saveOnCoreDump();
231 bool loadUIInitPrefs();
234 void saveUIInitPrefs(
235 const char * layout_level,
241 bool restoreUIInitPrefs();
244 static const std::pair<const char *, int> theFileChooserStyleMap[];
247 static int mapStrToInt(
const char *
label,
248 const std::pair<const char *, int> *map);
249 static const char * mapIntToStr(
int index,
250 const std::pair<const char *, int> *map);
261 static void setAppExitCode(
int exit_code);
262 static int getAppExitCode();
265 static bool isAppExiting();
269 static const char *getStartupDesktop();
272 class InstallSignalHandlersHelper;
277 static void clearTheMainApplication();
288 void processKeyBindingProxyRequests();
291 static void loadWindowGeometry(
293 bool default_maximized,
298 static bool getWindowGeometry(
int &
width,
int &
height,
302 static bool getSaveWindowGeoPref();
303 static void saveWindowGeoPref();
304 static bool loadWindowGeoPref(
309 class si_CrashHandler;
310 friend class si_CrashHandler;
314 static void installSignalHandlers();
317 void assignUIInitPrefs();
319 static const char *mainApplicationName();
322 const char *appname,
const char *
filename);
326 static void installCallbacks();
328 static void powerFailHandler(
331 static void terminationWarning(
uint nseconds);
338 ProxyRequest() : myTarget(nullptr) {}
349 NamedProxyRequestMap *myKeyBindingProxyRequestTable;
375 static void setAppForeground();
381 template <
typename APP_T>
386 {
return UTmakeUnique<APP_T>(); }
401 template<
class ObjectClass>
inline
407 template<
class ValueClass>
inline
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
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)