Skip to content

Commit

Permalink
Merge pull request #85 from MoAlyousef/main
Browse files Browse the repository at this point in the history
adds more TextDisplay methods
  • Loading branch information
pwiecz committed Jun 27, 2023
2 parents 39848df + f48fc51 commit 3b7145c
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 7 deletions.
13 changes: 7 additions & 6 deletions examples/texteditor/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@ func (app *EditorApp) BuildGUI() {
app.Win.SetLabel("TextEditor")
app.Win.Resizable(app.Win)

hpack := fltk.NewPack(WIDGET_PADDING, WIDGET_PADDING, app.Win.W(), WIDGET_HEIGHT)
hpack.SetType(fltk.VERTICAL)
hpack.SetSpacing(WIDGET_PADDING)
col := fltk.NewFlex(WIDGET_PADDING, WIDGET_PADDING, app.Win.W(), WIDGET_HEIGHT)
col.SetType(fltk.COLUMN)
col.SetSpacing(WIDGET_PADDING)

menuBar := fltk.NewMenuBar(0, 0, app.Win.W(), 20)
menuBar := fltk.NewMenuBar(0, 0, 0, 0)
col.Fixed(menuBar, 20)
menuBar.SetType(uint8(fltk.FLAT_BOX))
menuBar.Activate()
menuBar.AddEx("File", fltk.ALT+'f', nil, fltk.SUBMENU)
Expand All @@ -44,15 +45,15 @@ func (app *EditorApp) BuildGUI() {
menuBar.Add("Help/&About", app.callbackMenuHelpAbout)

app.TextBuffer = fltk.NewTextBuffer()
app.TextEditor = fltk.NewTextEditor(0, 0, app.Win.W(), app.Win.H()-20)
app.TextEditor = fltk.NewTextEditor(0, 0, 0, 0)
app.TextEditor.SetBuffer(app.TextBuffer)

app.TextEditor.SetCallbackCondition(fltk.WhenChanged)
app.TextEditor.SetCallback(func() {
app.IsChanged = true
})
app.TextEditor.Parent().Resizable(app.TextEditor)

col.End()
app.Win.End()
app.IsChanged = false
}
Expand Down
32 changes: 32 additions & 0 deletions text.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,14 @@ unsigned int go_fltk_TextDisplay_text_color(Fl_Text_Display *d) {
void go_fltk_TextDisplay_set_text_color(Fl_Text_Display *d, unsigned int color) {
d->textcolor(color);
}

int go_fltk_TextDisplay_text_font(Fl_Text_Display *d) {
return d->textfont();
}

void go_fltk_TextDisplay_set_text_font(Fl_Text_Display *d, int font) {
d->textfont(font);
}

int go_fltk_TextDisplay_text_size(Fl_Text_Display *d) {
return d->textsize();
Expand Down Expand Up @@ -103,6 +111,30 @@ void go_fltk_TextDisplay_overstrike(Fl_Text_Display *d, const char* text) {
d->overstrike(text);
}

void go_fltk_TextDisplay_set_linenumber_width(Fl_Text_Display *d, int width) {
d->linenumber_width(width);
}

void go_fltk_TextDisplay_set_linenumber_font(Fl_Text_Display *d, int val) {
d->linenumber_font(val);
}

void go_fltk_TextDisplay_set_linenumber_size(Fl_Text_Display *d, int val) {
d->linenumber_size(val);
}

void go_fltk_TextDisplay_set_linenumber_fgcolor(Fl_Text_Display *d, unsigned int val) {
d->linenumber_fgcolor(val);
}

void go_fltk_TextDisplay_set_linenumber_bgcolor(Fl_Text_Display *d, unsigned int val) {
d->linenumber_bgcolor(val);
}

void go_fltk_TextDisplay_set_linenumber_align(Fl_Text_Display *d, int val) {
d->linenumber_align(val);
}

// --- Text Editor ---

class GText_Editor : public EventHandler<Fl_Text_Editor> {
Expand Down
34 changes: 34 additions & 0 deletions text.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,16 @@ func (t *TextDisplay) SetTextColor(color Color) {
C.go_fltk_TextDisplay_set_text_color((*C.Fl_Text_Display)(t.ptr()), C.uint(color))
}

// TextColor gets the default color of text in the widget.
func (t *TextDisplay) TextFont() Font {
return Font(C.go_fltk_TextDisplay_text_font((*C.Fl_Text_Display)(t.ptr())))
}

// SetTextColor sets the default color of text in the widget.
func (t *TextDisplay) SetTextFont(font Font) {
C.go_fltk_TextDisplay_set_text_font((*C.Fl_Text_Display)(t.ptr()), C.int(font))
}

// TextSize gets the default size of text in the widget.
func (t *TextDisplay) TextSize() int {
return (int)(C.go_fltk_TextDisplay_text_size((*C.Fl_Text_Display)(t.ptr())))
Expand Down Expand Up @@ -375,6 +385,30 @@ func (t *TextDisplay) SetHighlightData(buf *TextBuffer, entries []StyleTableEntr
C.go_fltk_TextDisplay_set_highlight_data((*C.Fl_Text_Display)(t.ptr()), buf.ptr(), &colors[0], &fonts[0], &sizes[0], &attrs[0], &bgcolors[0], C.int(len(entries)))
}

func (t *TextDisplay) SetLinenumberWidth(w int) {
C.go_fltk_TextDisplay_set_linenumber_width((*C.Fl_Text_Display)(t.ptr()), C.int(w))
}

func (t *TextDisplay) SetLinenumberSize(s int) {
C.go_fltk_TextDisplay_set_linenumber_size((*C.Fl_Text_Display)(t.ptr()), C.int(s))
}

func (t *TextDisplay) SetLinenumberFgcolor(color Color) {
C.go_fltk_TextDisplay_set_linenumber_fgcolor((*C.Fl_Text_Display)(t.ptr()), C.uint(color))
}

func (t *TextDisplay) SetLinenumberBgcolor(color Color) {
C.go_fltk_TextDisplay_set_linenumber_bgcolor((*C.Fl_Text_Display)(t.ptr()), C.uint(color))
}

func (t *TextDisplay) SetLinenumberFont(font Font) {
C.go_fltk_TextDisplay_set_linenumber_font((*C.Fl_Text_Display)(t.ptr()), C.int(font))
}

func (t *TextDisplay) SetLinenumberAlign(align Align) {
C.go_fltk_TextDisplay_set_linenumber_align((*C.Fl_Text_Display)(t.ptr()), C.int(align))
}

type TextEditor struct {
TextDisplay
}
Expand Down
10 changes: 9 additions & 1 deletion text.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,21 @@ extern "C" {
extern void go_fltk_TextDisplay_hide_cursor(Fl_Text_Display *d);
extern unsigned int go_fltk_TextDisplay_text_color(Fl_Text_Display *d);
extern void go_fltk_TextDisplay_set_text_color(Fl_Text_Display* d, unsigned int color);
extern int go_fltk_TextDisplay_text_font(Fl_Text_Display *d);
extern void go_fltk_TextDisplay_set_text_font(Fl_Text_Display* d, int font);
extern int go_fltk_TextDisplay_text_size(Fl_Text_Display *d);
extern void go_fltk_TextDisplay_set_text_size(Fl_Text_Display *d, int size);
extern Fl_Text_Buffer *go_fltk_TextDisplay_buffer(Fl_Text_Display *d);
extern void go_fltk_TextDisplay_insert_position(Fl_Text_Display *d, int newPos);
extern int go_fltk_TextDisplay_get_insert_position(Fl_Text_Display *d);
extern void go_fltk_TextDisplay_insert_text(Fl_Text_Display *d, const char *text);
extern void go_fltk_TextDisplay_overstrike(Fl_Text_Display *d, const char* text);
extern void go_fltk_TextDisplay_set_linenumber_width(Fl_Text_Display *d, int width);
extern void go_fltk_TextDisplay_set_linenumber_font(Fl_Text_Display *d, int val);
extern void go_fltk_TextDisplay_set_linenumber_size(Fl_Text_Display *d, int val);
extern void go_fltk_TextDisplay_set_linenumber_fgcolor(Fl_Text_Display *d, unsigned int val);
extern void go_fltk_TextDisplay_set_linenumber_bgcolor(Fl_Text_Display *d, unsigned int val);
extern void go_fltk_TextDisplay_set_linenumber_align(Fl_Text_Display *d, int val);

extern Fl_Text_Buffer *go_fltk_new_TextBuffer(void);
extern void go_fltk_TextBuffer_add_modify_callback(Fl_Text_Buffer *b, uintptr_t handlerId);
Expand All @@ -66,7 +74,7 @@ extern "C" {
extern int go_fltk_TextBuffer_tab_distance(Fl_Text_Buffer *b);
extern void go_fltk_TextBuffer_set_tab_distance(Fl_Text_Buffer *b, int tabDist);
extern void go_fltk_TextDisplay_set_highlight_data(
Fl_Text_Display *self, Fl_Text_Buffer *sbuff, unsigned int *color,
Fl_Text_Display *d, Fl_Text_Buffer *sbuff, unsigned int *color,
int *font, int *fontsz, unsigned *attr, unsigned int *bgcolor, int sz);

#ifdef __cplusplus
Expand Down

0 comments on commit 3b7145c

Please sign in to comment.