summaryrefslogtreecommitdiff
path: root/src/app.h
blob: e40c5b2e64ac4c323fbc6d5978f707b592f65225 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once

/* Application core: event loop, base event processing, audio synth. */

#include <the_Foundation/string.h>
#include <the_Foundation/time.h>

iDeclareType(DocumentWidget)
iDeclareType(GmCerts)
iDeclareType(Visited)
iDeclareType(Window)

enum iAppEventMode {
    waitForNewEvents_AppEventMode,
    postedEventsOnly_AppEventMode,
};

enum iUserEventCode {
    command_UserEventCode = 1,
    refresh_UserEventCode  = 2,
};

const iString *execPath_App     (void);
const iString *dataDir_App      (void);

int         run_App             (int argc, char **argv);
void        processEvents_App   (enum iAppEventMode mode);
iBool       handleCommand_App   (const char *cmd);
void        refresh_App         (void);

iGmCerts *          certs_App           (void);
iVisited *          visited_App         (void);
iDocumentWidget *   document_App        (void);
iDocumentWidget *   document_Command    (const char *cmd);


iAny *      findWidget_App      (const char *id);
void        addTicker_App       (void (*ticker)(iAny *), iAny *context);
void        postRefresh_App     (void);
void        postCommand_App     (const char *command);
void        postCommandf_App    (const char *command, ...);

iLocalDef void postCommandString_App(const iString *command) {
    postCommand_App(cstr_String(command));
}

void        openInDefaultBrowser_App    (const iString *url);