Merge branch 'master' of github.com:Araq/Nimrod

This commit is contained in:
Araq
2012-10-12 18:42:22 +02:00
2 changed files with 129 additions and 9 deletions

View File

@@ -40,15 +40,7 @@ proc addForwardedProc(m: BModule, prc: PSym) =
proc findPendingModule(m: BModule, s: PSym): BModule =
var ms = getModule(s)
if ms.id == m.module.id: return m
for i in countup(0, high(gModules)):
result = gModules[i]
if result.module.id == ms.id: return
# else we found no pending module: This can happen for procs that are in
# a module that is already closed. This is fine, don't generate code for
# it then:
result = nil
#InternalError(s.info, "no pending module found for: " & s.name.s)
result = gModules[ms.position]
proc emitLazily(s: PSym): bool {.inline.} =
result = optDeadCodeElim in gGlobalOptions or
@@ -1139,6 +1131,11 @@ proc writeModule(m: BModule, pending: bool) =
addFileToCompile(cfilenoext)
addFileToLink(cfilenoext)
proc genPlatformAsserts(m: BModule) =
appf(m.s[cfsForwardTypes],
"typedef assert_numbits[sizeof(NI) == sizeof(void*) &&" &
"NIM_INTBITS == sizeof(NI)*8 ? 1 : -1];$N")
proc myClose(b: PPassContext, n: PNode): PNode =
result = n
if b == nil or passes.skipCodegen(n): return
@@ -1152,6 +1149,7 @@ proc myClose(b: PPassContext, n: PNode): PNode =
if sfMainModule in m.module.flags:
var disp = generateMethodDispatchers()
for i in 0..sonsLen(disp)-1: genProcAux(m, disp.sons[i].sym)
genPlatformAsserts(m)
genMainProc(m)
# we need to process the transitive closure because recursive module
# deps are allowed (and the system module is processed in the wrong

View File

@@ -16914,6 +16914,128 @@ proc set_visible_window*(evBox: PEventBox, v: gboolean){.cdecl, dynlib: lib,
proc get_vadjustment*(scrolled_window: PTextView): PAdjustment{.
cdecl, dynlib: lib, importc: "gtk_text_view_get_vadjustment".}
type
TInfoBar* = object of THBox
PInfoBar* = ptr TInfoBar
proc info_bar_new*(): PInfoBar{.cdecl, dynlib: lib, importc: "gtk_info_bar_new".}
proc info_bar_new_with_buttons*(first_button_text: cstring): PInfoBar {.cdecl, dynlib:lib,
varargs, importc: "gtk_info_bar_new_with_buttons".}
proc add_action_widget*(infobar: PInfoBar, child: PWidget, respID: gint) {.
cdecl, dynlib: lib, importc: "gtk_info_bar_add_action_widget".}
proc add_button*(infobar: PInfoBar, btnText: cstring, respID: gint): PWidget{.
cdecl, dynlib: lib, importc: "gtk_info_bar_add_button".}
proc set_response_sensitive*(infobar: PInfoBar, respID: gint, setting: gboolean){.
cdecl, dynlib: lib, importc: "gtk_info_bar_set_response_sensitive".}
proc set_default_response*(infobar: PInfoBar, respID: gint){.cdecl,
dynlib: lib, importc: "gtk_info_bar_set_default_response".}
proc response*(infobar: PInfoBar, respID: gint){.cdecl, dynlib: lib,
importc: "gtk_info_bar_response".}
proc set_message_type*(infobar: PInfoBar, messageType: TMessageType){.cdecl,
dynlib: lib, importc: "gtk_info_bar_set_message_type".}
proc get_message_type*(infobar: PInfoBar): TMessageType{.cdecl, dynlib: lib,
importc: "gtk_info_bar_get_message_type".}
proc get_action_area*(infobar: PInfoBar): PWidget{.cdecl, dynlib: lib,
importc: "gtk_info_bar_get_action_area".}
proc get_content_area*(infobar: PInfoBar): PContainer{.cdecl, dynlib: lib,
importc: "gtk_info_bar_get_content_area".}
type
TComboBox* = object of TWidget
PComboBox* = ptr TComboBox
proc comboBoxNew*(): PComboBox{.cdecl, importc: "gtk_combo_box_new", dynlib: lib.}
proc comboBox_new_with_entry*(): PComboBox{.cdecl,
importc: "gtk_combo_box_new_with_entry",
dynlib: lib.}
proc comboBox_new_with_model*(model: PTreeModel): PComboBox{.cdecl,
importc: "gtk_combo_box_new_with_model", dynlib: lib.}
proc comboBox_new_with_model_and_entry*(model: PTreeModel): PComboBox{.cdecl,
importc: "gtk_combo_box_new_with_model_and_entry", dynlib: lib.}
proc get_wrap_width*(combo_box: PComboBox): gint{.cdecl,
importc: "gtk_combo_box_get_wrap_width", dynlib: lib.}
proc set_wrap_width*(combo_box: PComboBox; width: gint){.cdecl,
importc: "gtk_combo_box_set_wrap_width", dynlib: lib.}
proc get_row_span_column*(combo_box: PComboBox): gint{.cdecl,
importc: "gtk_combo_box_get_row_span_column", dynlib: lib.}
proc set_row_span_column*(combo_box: PComboBox; row_span: gint){.cdecl,
importc: "gtk_combo_box_set_row_span_column", dynlib: lib.}
proc get_column_span_column*(combo_box: PComboBox): gint{.cdecl,
importc: "gtk_combo_box_get_column_span_column", dynlib: lib.}
proc set_column_span_column*(combo_box: PComboBox; column_span: gint){.
cdecl, importc: "gtk_combo_box_set_column_span_column", dynlib: lib.}
proc get_add_tearoffs*(combo_box: PComboBox): gboolean{.cdecl,
importc: "gtk_combo_box_get_add_tearoffs", dynlib: lib.}
proc set_add_tearoffs*(combo_box: PComboBox; add_tearoffs: gboolean){.
cdecl, importc: "gtk_combo_box_set_add_tearoffs", dynlib: lib.}
proc get_title*(combo_box: PComboBox): ptr gchar{.cdecl,
importc: "gtk_combo_box_get_title", dynlib: lib.}
proc set_title*(combo_box: PComboBox; title: ptr gchar){.cdecl,
importc: "gtk_combo_box_set_title", dynlib: lib.}
proc get_focus_on_click*(combo: PComboBox): gboolean{.cdecl,
importc: "gtk_combo_box_get_focus_on_click", dynlib: lib.}
proc set_focus_on_click*(combo: PComboBox; focus_on_click: gboolean){.
cdecl, importc: "gtk_combo_box_set_focus_on_click", dynlib: lib.}
proc get_active*(combo_box: PComboBox): gint{.cdecl,
importc: "gtk_combo_box_get_active", dynlib: lib.}
proc set_active*(combo_box: PComboBox; index: gint){.cdecl,
importc: "gtk_combo_box_set_active", dynlib: lib.}
proc get_active_iter*(combo_box: PComboBox; iter: PTreeIter): gboolean{.
cdecl, importc: "gtk_combo_box_get_active_iter", dynlib: lib.}
proc set_active_iter*(combo_box: PComboBox; iter: PTreeIter){.cdecl,
importc: "gtk_combo_box_set_active_iter", dynlib: lib.}
proc set_model*(combo_box: PComboBox; model: PTreeModel){.cdecl,
importc: "gtk_combo_box_set_model", dynlib: lib.}
proc get_model*(combo_box: PComboBox): PTreeModel{.cdecl,
importc: "gtk_combo_box_get_model", dynlib: lib.}
discard """proc get_row_separator_func*(combo_box: PComboBox): GtkTreeViewRowSeparatorFunc{.
cdecl, importc: "gtk_combo_box_get_row_separator_func", dynlib: lib.}
proc set_row_separator_func*(combo_box: PComboBox;
func: GtkTreeViewRowSeparatorFunc; data: gpointer;
destroy: GDestroyNotify){.cdecl,
importc: "gtk_combo_box_set_row_separator_func", dynlib: lib.}"""
discard """proc set_button_sensitivity*(combo_box: PComboBox;
sensitivity: GtkSensitivityType){.cdecl,
importc: "gtk_combo_box_set_button_sensitivity", dynlib: lib.}
proc get_button_sensitivity*(combo_box: PComboBox): GtkSensitivityType{.
cdecl, importc: "gtk_combo_box_get_button_sensitivity", dynlib: lib.}"""
proc get_has_entry*(combo_box: PComboBox): gboolean{.cdecl,
importc: "gtk_combo_box_get_has_entry", dynlib: lib.}
proc set_entry_text_column*(combo_box: PComboBox; text_column: gint){.
cdecl, importc: "gtk_combo_box_set_entry_text_column", dynlib: lib.}
proc get_entry_text_column*(combo_box: PComboBox): gint{.cdecl,
importc: "gtk_combo_box_get_entry_text_column", dynlib: lib.}
proc popup*(combo_box: PComboBox){.cdecl, importc: "gtk_combo_box_popup",
dynlib: lib.}
proc popdown*(combo_box: PComboBox){.cdecl,
importc: "gtk_combo_box_popdown", dynlib: lib.}
discard """proc get_popup_accessible*(combo_box: PComboBox): ptr AtkObject{.cdecl,
importc: "gtk_combo_box_get_popup_accessible", dynlib: lib.}"""
type
TComboBoxText* = object of TComboBox
PComboBoxText* = ptr TComboBoxText
proc combo_box_text_new*(): PComboBoxText{.cdecl, importc: "gtk_combo_box_text_new",
dynlib: lib.}
proc combo_box_text_new_with_entry*(): PComboBoxText{.cdecl,
importc: "gtk_combo_box_text_new_with_entry", dynlib: lib.}
proc append_text*(combo_box: PComboBoxText; text: cstring){.cdecl,
importc: "gtk_combo_box_text_append_text", dynlib: lib.}
proc insert_text*(combo_box: PComboBoxText; position: gint;
text: cstring){.cdecl,
importc: "gtk_combo_box_text_insert_text", dynlib: lib.}
proc prepend_text*(combo_box: PComboBoxText; text: cstring){.cdecl,
importc: "gtk_combo_box_text_prepend_text", dynlib: lib.}
proc remove*(combo_box: PComboBoxText; position: gint){.cdecl,
importc: "gtk_combo_box_text_remove", dynlib: lib.}
proc get_active_text*(combo_box: PComboBoxText): cstring{.cdecl,
importc: "gtk_combo_box_text_get_active_text", dynlib: lib.}
proc nimrod_init*() =
var
cmdLine{.importc: "cmdLine".}: array[0..255, cstring]