diff options
author | Araq <rumpf_a@web.de> | 2012-08-20 21:59:59 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-08-20 21:59:59 +0200 |
commit | e17a778d56f17d5ac92e8ad8115fdb1ceb727336 (patch) | |
tree | fc05fe64a90f4bce88e59c51e9aaf3daddfb57dc | |
parent | 5a4659c147db5a8f25d809ae4d792448437862e1 (diff) | |
parent | 6c6dfff4e90fba5cfda70f1a210552f32f134480 (diff) | |
download | Nim-e17a778d56f17d5ac92e8ad8115fdb1ceb727336.tar.gz |
Merge branch 'master' of github.com:Araq/Nimrod
-rwxr-xr-x | lib/pure/os.nim | 2 | ||||
-rwxr-xr-x | lib/pure/streams.nim | 2 | ||||
-rwxr-xr-x | lib/pure/strutils.nim | 14 | ||||
-rwxr-xr-x | lib/wrappers/gtk/glib2.nim | 3 | ||||
-rwxr-xr-x | lib/wrappers/gtk/gtk2.nim | 27 |
5 files changed, 40 insertions, 8 deletions
diff --git a/lib/pure/os.nim b/lib/pure/os.nim index 5ec46d6b7..5a298db5b 100755 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim @@ -411,7 +411,7 @@ proc JoinPath*(head, tail: string): string {. else: result = head & DirSep & tail -proc JoinPath*(parts: openarray[string]): string {.noSideEffect, +proc JoinPath*(parts: varargs[string]): string {.noSideEffect, rtl, extern: "nos$1OpenArray".} = ## The same as `JoinPath(head, tail)`, but works with any number ## of directory parts. diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim index 6e2e19be5..4cd48af31 100755 --- a/lib/pure/streams.nim +++ b/lib/pure/streams.nim @@ -194,7 +194,7 @@ proc ssAtEnd(s: PStream): bool = proc ssSetPosition(s: PStream, pos: int) = var s = PStringStream(s) - s.pos = min(pos, s.data.len-1) + s.pos = clamp(pos, 0, s.data.high) proc ssGetPosition(s: PStream): int = var s = PStringStream(s) diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 2509bf689..0f11b4d89 100755 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -654,6 +654,20 @@ proc find*(s: string, chars: set[char], start: int = 0): int {.noSideEffect, for i in start..s.len-1: if s[i] in chars: return i return -1 + +proc rfind*(s, sub: string, start: int = -1): int {.noSideEffect.} = + ## Searches for `sub` in `s` in reverse, starting at `start` and going + ## backwards to 0. Searching is case-sensitive. If `sub` is not in `s`, -1 is + ## returned. + let realStart = if start == -1: s.len else: start + for i in countdown(realStart-sub.len, 0): + for j in 0..sub.len-1: + result = i + if sub[j] != s[i+j]: + result = -1 + break + if result != -1: return + return -1 proc quoteIfContainsWhite*(s: string): string = ## returns ``'"' & s & '"'`` if `s` contains a space and does not diff --git a/lib/wrappers/gtk/glib2.nim b/lib/wrappers/gtk/glib2.nim index 2d5227e09..b69b708fe 100755 --- a/lib/wrappers/gtk/glib2.nim +++ b/lib/wrappers/gtk/glib2.nim @@ -4529,3 +4529,6 @@ proc g_idle_add_full*(priority: guint, function, proc g_source_remove*(tag: guint): gboolean {. cdecl, dynlib: gliblib, importc: "g_source_remove".} + +proc g_signal_emit_by_name*(instance: gpointer, detailed_signal: cstring) {. + cdecl, varargs, dynlib: gobjectlib, importc.} diff --git a/lib/wrappers/gtk/gtk2.nim b/lib/wrappers/gtk/gtk2.nim index 7527faf60..ed5632140 100755 --- a/lib/wrappers/gtk/gtk2.nim +++ b/lib/wrappers/gtk/gtk2.nim @@ -4444,6 +4444,10 @@ proc get_value*(adjustment: PAdjustment): gdouble{.cdecl, dynlib: lib, importc: "gtk_adjustment_get_value".} proc set_value*(adjustment: PAdjustment, value: gdouble){.cdecl, dynlib: lib, importc: "gtk_adjustment_set_value".} +proc get_upper*(adjustment: PAdjustment): gdouble{.cdecl, + dynlib: lib, importc: "gtk_adjustment_get_upper".} +proc get_page_size*(adjustment: PAdjustment): gdouble{.cdecl, + dynlib: lib, importc: "gtk_adjustment_get_page_size".} proc TYPE_ALIGNMENT*(): GType proc ALIGNMENT*(obj: pointer): PAlignment proc ALIGNMENT_CLASS*(klass: pointer): PAlignmentClass @@ -9507,6 +9511,14 @@ proc get_line_log_attrs*(buffer: PTextBuffer, dynlib: lib, importc: "_gtk_text_buffer_get_line_log_attrs".} proc notify_will_remove_tag*(buffer: PTextBuffer, tag: PTextTag){. cdecl, dynlib: lib, importc: "_gtk_text_buffer_notify_will_remove_tag".} +proc get_has_selection*(buffer: PTextBuffer): bool {.cdecl, + dynlib: lib, importc: "gtk_text_buffer_get_has_selection".} +proc select_range*(buffer: PTextBuffer, ins, + bound: PTextIter) {.cdecl, dynlib: lib, importc: "gtk_text_buffer_select_range".} +proc backspace*(buffer: PTextBuffer, iter: PTextIter, + interactive, defaultEditable: bool): bool {.cdecl, + dynlib: lib, importc: "gtk_text_buffer_backspace".} + proc TYPE_TEXT_LAYOUT*(): GType proc TEXT_LAYOUT*(obj: pointer): PTextLayout proc TEXT_LAYOUT_CLASS*(klass: pointer): PTextLayoutClass @@ -16874,12 +16886,6 @@ proc get_realized*(w: PWidget): gboolean {.cdecl, dynlib: lib, proc set_skip_taskbar_hint*(window: PWindow, setting: gboolean){.cdecl, dynlib: lib, importc: "gtk_window_set_skip_taskbar_hint".} -proc nimrod_init*() = - var - cmdLine{.importc: "cmdLine".}: array[0..255, cstring] - cmdCount{.importc: "cmdCount".}: cint - init(addr(cmdLine), addr(cmdCount)) - type TTooltip* {.pure, final.} = object PTooltip* = ptr TTooltip @@ -16904,3 +16910,12 @@ proc set_markup*(tp: PTooltip, mk: cstring){.cdecl, dynlib: lib, proc set_visible_window*(evBox: PEventBox, v: gboolean){.cdecl, dynlib: lib, importc: "gtk_event_box_set_visible_window".} + +proc get_vadjustment*(scrolled_window: PTextView): PAdjustment{. + cdecl, dynlib: lib, importc: "gtk_text_view_get_vadjustment".} + +proc nimrod_init*() = + var + cmdLine{.importc: "cmdLine".}: array[0..255, cstring] + cmdCount{.importc: "cmdCount".}: cint + init(addr(cmdLine), addr(cmdCount)) |