aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2011-01-25 04:34:28 +0000
committercorvid <corvid@lavabit.com>2011-01-25 04:34:28 +0000
commit274f556b3b4b787be97390d4c951101c7e2ae97c (patch)
tree6b9093932b1e5922dc2769605c78ed8b9d66b5ac /src
parent074e67a9185980ee6203d0c32e3d240e57245ad2 (diff)
dialog text window
Diffstat (limited to 'src')
-rw-r--r--src/dialog.cc50
1 files changed, 29 insertions, 21 deletions
diff --git a/src/dialog.cc b/src/dialog.cc
index 5db21583..509614d9 100644
--- a/src/dialog.cc
+++ b/src/dialog.cc
@@ -29,14 +29,6 @@
#include "prefs.h"
/*
- * Close dialog window.
- */
-static void window_close_cb(Fl_Widget *, void *vwin)
-{
- delete (Fl_Window*)vwin;
-}
-
-/*
* Display a message in a popup window.
*/
void a_Dialog_msg(const char *msg)
@@ -114,40 +106,56 @@ char *a_Dialog_open_file(const char *msg,
}
/*
+ * Close text window.
+ */
+static void text_window_close_cb(Fl_Widget *, void *vtd)
+{
+ Fl_Text_Display *td = (Fl_Text_Display *)vtd;
+ Fl_Text_Buffer *buf = td->buffer();
+
+ delete (Fl_Window*)td->window();
+ delete buf;
+}
+
+/*
* Show a new window with the provided text
*/
void a_Dialog_text_window(const char *txt, const char *title)
{
-#if 0
-PORT1.3
- //int wh = 600, ww = 650, bh = 30;
int wh = prefs.height, ww = prefs.width, bh = 30;
- Font *textfont = font(prefs.font_monospace, 0);
+// Font *textfont = font(prefs.font_monospace, 0);
- Fl_Window *window = new Fl_Window(ww, wh, title ? title : "Untitled");
- window->callback(window_close_cb, window);
- window->begin();
+ Fl_Window *window = new Fl_Window(ww, wh, title ? title : "Dillo text");
+ Fl_Group::current(0);
+
+ Fl_Text_Buffer *buf = new Fl_Text_Buffer();
+ buf->text(txt);
Fl_Text_Display *td = new Fl_Text_Display(0,0,ww, wh-bh);
- td->buffer()->text(txt);
+ td->buffer(buf);
+#if 0
+PORT1.3
if (textfont)
td->textfont(textfont);
td->textsize((int) rint(13.0 * prefs.font_factor));
fltk::setfont(td->textfont(), td->textsize());
+#else
+ td->textfont(FL_COURIER);
+ td->textsize((int) rint(13.0 * prefs.font_factor));
+#endif
/* enable wrapping lines; text uses entire width of window */
td->wrap_mode(true, false);
- /* WORKAROUND: FLTK may not display all the lines without this */
- td->size(ww+1,wh-bh);
+ window->add(td);
Fl_Return_Button *b = new Fl_Return_Button (0, wh-bh, ww, bh, "Close");
- b->callback(window_close_cb, window);
+ b->callback(text_window_close_cb, td);
+ window->add(b);
+ window->callback(text_window_close_cb, td);
window->resizable(td);
- window->end();
window->show();
-#endif
}
/*--------------------------------------------------------------------------*/