MouseFunc right;
} MouseConfig;
+void win_init(void (*errfn)(char*));
void win_window(char* name, bool isdialog, void (*errfn)(char*));
void win_load(char* path);
void win_save(char* path);
static uint32_t special_keys(uint32_t key);
static uint32_t getkey(XEvent* e);
static void xftcolor(XftColor* xc, int id);
-static void win_init(void (*errfn)(char*));
struct XFont {
struct {
X.gc = XCreateGC(X.display, X.self, GCForeground|GCGraphicsExposures, &gcv);
}
-void x11_dialog(char* name, int height, int width) {
- x11_window(name, height, width);
- Atom WindowType = XInternAtom(X.display, "_NET_WM_WINDOW_TYPE", False);
- Atom DialogType = XInternAtom(X.display, "_NET_WM_WINDOW_TYPE_DIALOG", False);
- XChangeProperty(X.display, X.self, WindowType, XA_ATOM, 32, PropModeReplace, (unsigned char*)&DialogType, 1);
-}
-
/******************************************************************************/
XFont x11_font_load(char* name) {
/******************************************************************************/
+void win_init(void (*errfn)(char*)) {
+ for (int i = 0; i < SCROLL; i++)
+ view_init(&(Regions[i].view), NULL, errfn);
+ x11_init(0);
+ CurrFont = x11_font_load(FontString);
+ Regions[SCROLL].clrnor = Colors[ClrScrollNor];
+ Regions[TAGS].clrnor = Colors[ClrTagsNor];
+ Regions[TAGS].clrsel = Colors[ClrTagsSel];
+ Regions[TAGS].clrcsr = Colors[ClrTagsCsr];
+ Regions[EDIT].clrnor = Colors[ClrEditNor];
+ Regions[EDIT].clrsel = Colors[ClrEditSel];
+ Regions[EDIT].clrcsr = Colors[ClrEditCsr];
+}
+
void win_load(char* path) {
View* view = win_view(EDIT);
view_init(view, path, view->buffer.errfn);
/******************************************************************************/
-static void win_init(void (*errfn)(char*)) {
- for (int i = 0; i < SCROLL; i++)
- view_init(&(Regions[i].view), NULL, errfn);
- x11_init(0);
- CurrFont = x11_font_load(FontString);
- Regions[SCROLL].clrnor = Colors[ClrScrollNor];
- Regions[TAGS].clrnor = Colors[ClrTagsNor];
- Regions[TAGS].clrsel = Colors[ClrTagsSel];
- Regions[TAGS].clrcsr = Colors[ClrTagsCsr];
- Regions[EDIT].clrnor = Colors[ClrEditNor];
- Regions[EDIT].clrsel = Colors[ClrEditSel];
- Regions[EDIT].clrcsr = Colors[ClrEditCsr];
-}
-
static void layout(int width, int height) {
size_t fheight = x11_font_height(CurrFont);
size_t fwidth = x11_font_width(CurrFont);
view_selctx(win_view(FOCUSED));
}
-static void jumpmark(void) {
- int mark = (win_getkey() - '0');
- assert(mark < 10);
- if (x11_keymodsset(ModAlt))
- Marks[mark] = win_view(FOCUSED)->selection.end;
- else
- view_jumpto(win_view(FOCUSED), false, Marks[mark]);
-}
-
/* Main Routine
******************************************************************************/
static Tag Builtins[] = {
{ ModAny, KEY_DELETE, delete },
{ ModAny, KEY_BACKSPACE, backspace },
- /* Marks Handling */
- { ModOneOrMore, '0', jumpmark },
- { ModOneOrMore, '1', jumpmark },
- { ModOneOrMore, '2', jumpmark },
- { ModOneOrMore, '3', jumpmark },
- { ModOneOrMore, '4', jumpmark },
- { ModOneOrMore, '5', jumpmark },
- { ModOneOrMore, '6', jumpmark },
- { ModOneOrMore, '7', jumpmark },
- { ModOneOrMore, '8', jumpmark },
- { ModOneOrMore, '9', jumpmark },
-
/* Implementation Specific */
{ ModNone, KEY_ESCAPE, select_prev },
{ ModCtrl, 't', change_focus },
/* create the window */
win_init(ondiagmsg);
- x11_dialog("tide", WinWidth, WinHeight);
+ x11_window("tide", WinWidth, WinHeight);
/* open all but the last file in new instances */
- for (argc--, argv++; argc > 1; argc--, argv++) {
- if (!strcmp(*argv, "--")) break;
+ for (argc--, argv++; argc > 1; argc--, argv++)
cmd_execwitharg(CMD_TIDE, *argv);
- }
/* if we still have args left we're going to open it in this instance */
if (*argv) edit_relative(*argv);