From 9a322a028f6c7d9a6b0b142ca9c4540e3f2082da Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 21 Dec 2014 19:40:15 +0000 Subject: Use class instead of base pointer --- src/command/commands.c | 49 ++++++++------ src/ui/core.c | 173 ++++++++++++++++++++++++++----------------------- src/ui/occupantswin.c | 2 +- src/ui/window.c | 110 +++++++++++++++---------------- src/ui/window.h | 16 ++--- src/ui/windows.c | 8 +-- 6 files changed, 187 insertions(+), 171 deletions(-) diff --git a/src/command/commands.c b/src/command/commands.c index cc914c1f..da3ee9ec 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1605,11 +1605,12 @@ cmd_status(gchar **args, struct cmd_help_t help) case WIN_MUC: if (usr != NULL) { ProfMucWin *mucwin = wins_get_current_muc(); + ProfWin *window = (ProfWin*) mucwin; Occupant *occupant = muc_roster_item(mucwin->roomjid, usr); if (occupant) { - win_show_occupant(&mucwin->super, occupant); + win_show_occupant(window, occupant); } else { - win_save_vprint(&mucwin->super, '-', NULL, 0, 0, "", "No such participant \"%s\" in room.", usr); + win_save_vprint(window, '-', NULL, 0, 0, "", "No such participant \"%s\" in room.", usr); } } else { ui_current_print_line("You must specify a nickname."); @@ -1620,11 +1621,12 @@ cmd_status(gchar **args, struct cmd_help_t help) ui_current_print_line("No parameter required when in chat."); } else { ProfChatWin *chatwin = wins_get_current_chat(); + ProfWin *window = (ProfWin*) chatwin; PContact pcontact = roster_get_contact(chatwin->barejid); if (pcontact != NULL) { - win_show_contact(&chatwin->super, pcontact); + win_show_contact(window, pcontact); } else { - win_save_println(&chatwin->super, "Error getting contact info."); + win_save_println(window, "Error getting contact info."); } } break; @@ -1633,12 +1635,13 @@ cmd_status(gchar **args, struct cmd_help_t help) ui_current_print_line("No parameter required when in chat."); } else { ProfPrivateWin *privatewin = wins_get_current_private(); + ProfWin *window = (ProfWin*) privatewin; Jid *jid = jid_create(privatewin->fulljid); Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); if (occupant) { - win_show_occupant(&privatewin->super, occupant); + win_show_occupant(window, occupant); } else { - win_save_println(&privatewin->super, "Error getting contact info."); + win_save_println(window, "Error getting contact info."); } jid_destroy(jid); } @@ -1700,11 +1703,12 @@ cmd_info(gchar **args, struct cmd_help_t help) ui_current_print_line("No parameter required when in chat."); } else { ProfChatWin *chatwin = wins_get_current_chat(); + ProfWin *window = (ProfWin*) chatwin; PContact pcontact = roster_get_contact(chatwin->barejid); if (pcontact != NULL) { - win_show_info(&chatwin->super, pcontact); + win_show_info(window, pcontact); } else { - win_save_println(&chatwin->super, "Error getting contact info."); + win_save_println(window, "Error getting contact info."); } } break; @@ -1713,12 +1717,13 @@ cmd_info(gchar **args, struct cmd_help_t help) ui_current_print_line("No parameter required when in chat."); } else { ProfPrivateWin *privatewin = wins_get_current_private(); + ProfWin *window = (ProfWin*) privatewin; Jid *jid = jid_create(privatewin->fulljid); Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); if (occupant) { - win_show_occupant_info(&privatewin->super, jid->barejid, occupant); + win_show_occupant_info(window, jid->barejid, occupant); } else { - win_save_println(&privatewin->super, "Error getting contact info."); + win_save_println(window, "Error getting contact info."); } jid_destroy(jid); } @@ -2278,7 +2283,7 @@ cmd_form(gchar **args, struct cmd_help_t help) help_text = command->help.long_help; } - ui_show_lines(&confwin->super, help_text); + ui_show_lines((ProfWin*) confwin, help_text); } ui_current_print_line(""); return TRUE; @@ -2338,7 +2343,7 @@ cmd_kick(gchar **args, struct cmd_help_t help) char *reason = args[1]; iq_room_kick_occupant(mucwin->roomjid, nick, reason); } else { - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick); + win_save_vprint((ProfWin*) mucwin, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick); } } else { cons_show("Usage: %s", help.usage); @@ -2392,14 +2397,15 @@ cmd_subject(gchar **args, struct cmd_help_t help) } ProfMucWin *mucwin = wins_get_current_muc(); + ProfWin *window = (ProfWin*) mucwin; if (args[0] == NULL) { char *subject = muc_subject(mucwin->roomjid); if (subject) { - win_save_vprint(&mucwin->super, '!', NULL, NO_EOL, THEME_ROOMINFO, "", "Room subject: "); - win_save_vprint(&mucwin->super, '!', NULL, NO_DATE, 0, "", "%s", subject); + win_save_vprint(window, '!', NULL, NO_EOL, THEME_ROOMINFO, "", "Room subject: "); + win_save_vprint(window, '!', NULL, NO_DATE, 0, "", "%s", subject); } else { - win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room has no subject"); + win_save_print(window, '!', NULL, 0, THEME_ROOMINFO, "", "Room has no subject"); } return TRUE; } @@ -2464,7 +2470,7 @@ cmd_affiliation(gchar **args, struct cmd_help_t help) iq_room_affiliation_list(mucwin->roomjid, "member"); iq_room_affiliation_list(mucwin->roomjid, "outcast"); } else if (g_strcmp0(affiliation, "none") == 0) { - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no affiliation."); + win_save_print((ProfWin*) mucwin, '!', NULL, 0, 0, "", "Cannot list users with no affiliation."); } else { iq_room_affiliation_list(mucwin->roomjid, affiliation); } @@ -2532,7 +2538,7 @@ cmd_role(gchar **args, struct cmd_help_t help) iq_room_role_list(mucwin->roomjid, "participant"); iq_room_role_list(mucwin->roomjid, "visitor"); } else if (g_strcmp0(role, "none") == 0) { - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no role."); + win_save_print((ProfWin*) mucwin, '!', NULL, 0, 0, "", "Cannot list users with no role."); } else { iq_room_role_list(mucwin->roomjid, role); } @@ -2584,7 +2590,8 @@ cmd_room(gchar **args, struct cmd_help_t help) } ProfMucWin *mucwin = wins_get_current_muc(); - int num = wins_get_num(&mucwin->super); + ProfWin *window = (ProfWin*) mucwin; + int num = wins_get_num(window); int ui_index = num; if (ui_index == 10) { @@ -2594,12 +2601,12 @@ cmd_room(gchar **args, struct cmd_help_t help) if (g_strcmp0(args[0], "accept") == 0) { gboolean requires_config = muc_requires_config(mucwin->roomjid); if (!requires_config) { - win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Current room does not require configuration."); + win_save_print(window, '!', NULL, 0, THEME_ROOMINFO, "", "Current room does not require configuration."); return TRUE; } else { iq_confirm_instant_room(mucwin->roomjid); muc_set_requires_config(mucwin->roomjid, FALSE); - win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room unlocked."); + win_save_print(window, '!', NULL, 0, THEME_ROOMINFO, "", "Room unlocked."); return TRUE; } } @@ -2616,7 +2623,7 @@ cmd_room(gchar **args, struct cmd_help_t help) g_string_free(win_title, TRUE); if (confwin != NULL) { - num = wins_get_num(&confwin->super); + num = wins_get_num(window); ui_switch_win(num); } else { iq_request_room_config_form(mucwin->roomjid); diff --git a/src/ui/core.c b/src/ui/core.c index 33a84044..55c1ba47 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -270,6 +270,7 @@ static void _ui_contact_typing(const char * const barejid) { ProfChatWin *chatwin = wins_get_chat(barejid); + ProfWin *window = (ProfWin*) chatwin; if (prefs_get_boolean(PREF_INTYPE)) { // no chat window for user @@ -277,22 +278,22 @@ _ui_contact_typing(const char * const barejid) cons_show_typing(barejid); // have chat window but not currently in it - } else if (!wins_is_current(&chatwin->super)) { + } else if (!wins_is_current(window)) { cons_show_typing(barejid); // in chat window with user } else { title_bar_set_typing(TRUE); - int num = wins_get_num(&chatwin->super); + int num = wins_get_num(window); status_bar_active(num); } } if (prefs_get_boolean(PREF_NOTIFY_TYPING)) { gboolean is_current = FALSE; - if (&chatwin->super != NULL) { - is_current = wins_is_current(&chatwin->super); + if (window) { + is_current = wins_is_current(window); } if ( !is_current || (is_current && prefs_get_boolean(PREF_NOTIFY_TYPING_CURRENT)) ) { PContact contact = roster_get_contact(barejid); @@ -349,11 +350,13 @@ _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVa win_created = TRUE; } - int num = wins_get_num(&chatwin->super); + ProfWin *window = (ProfWin*) chatwin; + + int num = wins_get_num(window); // currently viewing chat window with sender - if (wins_is_current(&chatwin->super)) { - win_print_incoming_message(&chatwin->super, tv_stamp, display_from, message); + if (wins_is_current(window)) { + win_print_incoming_message(window, tv_stamp, display_from, message); title_bar_set_typing(FALSE); status_bar_active(num); @@ -366,7 +369,7 @@ _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVa flash(); } - chatwin->super.unread++; + window->unread++; if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) { _win_show_history(num, barejid); } @@ -375,11 +378,11 @@ _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVa if ((tv_stamp != NULL) && (win_created)) { PContact pcontact = roster_get_contact(barejid); if (pcontact != NULL) { - win_show_contact(&chatwin->super, pcontact); + win_show_contact(window, pcontact); } } - win_print_incoming_message(&chatwin->super, tv_stamp, display_from, message); + win_print_incoming_message(window, tv_stamp, display_from, message); } int ui_index = num; @@ -392,7 +395,7 @@ _ui_incoming_msg(const char * const barejid, const char * const message, GTimeVa } if (prefs_get_boolean(PREF_NOTIFY_MESSAGE)) { - gboolean is_current = wins_is_current(&chatwin->super); + gboolean is_current = wins_is_current(window); if ( !is_current || (is_current && prefs_get_boolean(PREF_NOTIFY_MESSAGE_CURRENT)) ) { if (prefs_get_boolean(PREF_NOTIFY_MESSAGE_TEXT)) { notify_message(display_from, ui_index, message); @@ -417,11 +420,12 @@ _ui_incoming_private_msg(const char * const fulljid, const char * const message, privatewin = (ProfPrivateWin*)window; } - int num = wins_get_num(&privatewin->super); + ProfWin *window = (ProfWin*) privatewin; + int num = wins_get_num(window); // currently viewing chat window with sender - if (wins_is_current(&privatewin->super)) { - win_print_incoming_message(&privatewin->super, tv_stamp, display_from, message); + if (wins_is_current(window)) { + win_print_incoming_message(window, tv_stamp, display_from, message); title_bar_set_typing(FALSE); status_bar_active(num); @@ -434,12 +438,12 @@ _ui_incoming_private_msg(const char * const fulljid, const char * const message, flash(); } - privatewin->super.unread++; + window->unread++; if (prefs_get_boolean(PREF_CHLOG) && prefs_get_boolean(PREF_HISTORY)) { _win_show_history(num, fulljid); } - win_print_incoming_message(&privatewin->super, tv_stamp, display_from, message); + win_print_incoming_message(window, tv_stamp, display_from, message); } int ui_index = num; @@ -452,7 +456,7 @@ _ui_incoming_private_msg(const char * const fulljid, const char * const message, } if (prefs_get_boolean(PREF_NOTIFY_MESSAGE)) { - gboolean is_current = wins_is_current(&privatewin->super); + gboolean is_current = wins_is_current(window); if ( !is_current || (is_current && prefs_get_boolean(PREF_NOTIFY_MESSAGE_CURRENT)) ) { if (prefs_get_boolean(PREF_NOTIFY_MESSAGE_TEXT)) { notify_message(display_from, ui_index, message); @@ -580,8 +584,7 @@ _ui_handle_recipient_not_found(const char * const recipient, const char * const ProfChatWin *chatwin = wins_get_chat(recipient); if (chatwin) { cons_show_error("Recipient %s not found: %s", recipient, err_msg); - // TODO change super references to superclass cast - win_save_vprint(&chatwin->super, '!', NULL, 0, THEME_ERROR, "", "Recipient %s not found: %s", recipient, err_msg); + win_save_vprint((ProfWin*) chatwin, '!', NULL, 0, THEME_ERROR, "", "Recipient %s not found: %s", recipient, err_msg); return; } @@ -589,7 +592,7 @@ _ui_handle_recipient_not_found(const char * const recipient, const char * const ProfMucWin *mucwin = wins_get_muc(recipient); if (mucwin) { cons_show_error("Room %s not found: %s", recipient, err_msg); - win_save_vprint(&mucwin->super, '!', NULL, 0, THEME_ERROR, "", "Room %s not found: %s", recipient, err_msg); + win_save_vprint((ProfWin*) mucwin, '!', NULL, 0, THEME_ERROR, "", "Room %s not found: %s", recipient, err_msg); return; } @@ -597,7 +600,7 @@ _ui_handle_recipient_not_found(const char * const recipient, const char * const ProfPrivateWin *privatewin = wins_get_private(recipient); if (privatewin) { cons_show_error("Recipient %s not found: %s", recipient, err_msg); - win_save_vprint(&privatewin->super, '!', NULL, 0, THEME_ERROR, "", "Recipient %s not found: %s", recipient, err_msg); + win_save_vprint((ProfWin*) privatewin, '!', NULL, 0, THEME_ERROR, "", "Recipient %s not found: %s", recipient, err_msg); return; } @@ -2342,42 +2345,44 @@ _ui_show_room_info(ProfMucWin *mucwin) char *role = muc_role_str(mucwin->roomjid); char *affiliation = muc_affiliation_str(mucwin->roomjid); - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", "Room: %s", mucwin->roomjid); - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", "Affiliation: %s", affiliation); - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", "Role: %s", role); - win_save_print(&mucwin->super, '-', NULL, 0, 0, "", ""); + ProfWin *window = (ProfWin*) mucwin; + win_save_vprint(window, '!', NULL, 0, 0, "", "Room: %s", mucwin->roomjid); + win_save_vprint(window, '!', NULL, 0, 0, "", "Affiliation: %s", affiliation); + win_save_vprint(window, '!', NULL, 0, 0, "", "Role: %s", role); + win_save_print(window, '-', NULL, 0, 0, "", ""); } static void _ui_show_room_role_list(ProfMucWin *mucwin, muc_role_t role) { + ProfWin *window = (ProfWin*) mucwin; GSList *occupants = muc_occupants_by_role(mucwin->roomjid, role); if (!occupants) { switch (role) { case MUC_ROLE_MODERATOR: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No moderators found."); + win_save_print(window, '!', NULL, 0, 0, "", "No moderators found."); break; case MUC_ROLE_PARTICIPANT: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No participants found."); + win_save_print(window, '!', NULL, 0, 0, "", "No participants found."); break; case MUC_ROLE_VISITOR: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No visitors found."); + win_save_print(window, '!', NULL, 0, 0, "", "No visitors found."); break; default: break; } - win_save_print(&mucwin->super, '-', NULL, 0, 0, "", ""); + win_save_print(window, '-', NULL, 0, 0, "", ""); } else { switch (role) { case MUC_ROLE_MODERATOR: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Moderators:"); + win_save_print(window, '!', NULL, 0, 0, "", "Moderators:"); break; case MUC_ROLE_PARTICIPANT: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Participants:"); + win_save_print(window, '!', NULL, 0, 0, "", "Participants:"); break; case MUC_ROLE_VISITOR: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Visitors:"); + win_save_print(window, '!', NULL, 0, 0, "", "Visitors:"); break; default: break; @@ -2388,55 +2393,56 @@ _ui_show_room_role_list(ProfMucWin *mucwin, muc_role_t role) Occupant *occupant = curr_occupant->data; if (occupant->role == role) { if (occupant->jid) { - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", " %s (%s)", occupant->nick, occupant->jid); + win_save_vprint(window, '!', NULL, 0, 0, "", " %s (%s)", occupant->nick, occupant->jid); } else { - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", " %s", occupant->nick); + win_save_vprint(window, '!', NULL, 0, 0, "", " %s", occupant->nick); } } curr_occupant = g_slist_next(curr_occupant); } - win_save_print(&mucwin->super, '-', NULL, 0, 0, "", ""); + win_save_print(window, '-', NULL, 0, 0, "", ""); } } static void _ui_show_room_affiliation_list(ProfMucWin *mucwin, muc_affiliation_t affiliation) { + ProfWin *window = (ProfWin*) mucwin; GSList *occupants = muc_occupants_by_affiliation(mucwin->roomjid, affiliation); if (!occupants) { switch (affiliation) { case MUC_AFFILIATION_OWNER: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No owners found."); + win_save_print(window, '!', NULL, 0, 0, "", "No owners found."); break; case MUC_AFFILIATION_ADMIN: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No admins found."); + win_save_print(window, '!', NULL, 0, 0, "", "No admins found."); break; case MUC_AFFILIATION_MEMBER: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No members found."); + win_save_print(window, '!', NULL, 0, 0, "", "No members found."); break; case MUC_AFFILIATION_OUTCAST: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "No outcasts found."); + win_save_print(window, '!', NULL, 0, 0, "", "No outcasts found."); break; default: break; } - win_save_print(&mucwin->super, '-', NULL, 0, 0, "", ""); + win_save_print(window, '-', NULL, 0, 0, "", ""); } else { switch (affiliation) { case MUC_AFFILIATION_OWNER: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Owners:"); + win_save_print(window, '!', NULL, 0, 0, "", "Owners:"); break; case MUC_AFFILIATION_ADMIN: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Admins:"); + win_save_print(window, '!', NULL, 0, 0, "", "Admins:"); break; case MUC_AFFILIATION_MEMBER: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Members:"); + win_save_print(window, '!', NULL, 0, 0, "", "Members:"); break; case MUC_AFFILIATION_OUTCAST: - win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Outcasts:"); + win_save_print(window, '!', NULL, 0, 0, "", "Outcasts:"); break; default: break; @@ -2447,16 +2453,16 @@ _ui_show_room_affiliation_list(ProfMucWin *mucwin, muc_affiliation_t affiliation Occupant *occupant = curr_occupant->data; if (occupant->affiliation == affiliation) { if (occupant->jid) { - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", " %s (%s)", occupant->nick, occupant->jid); + win_save_vprint(window, '!', NULL, 0, 0, "", " %s (%s)", occupant->nick, occupant->jid); } else { - win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", " %s", occupant->nick); + win_save_vprint(window, '!', NULL, 0, 0, "", " %s", occupant->nick); } } curr_occupant = g_slist_next(curr_occupant); } - win_save_print(&mucwin->super, '-', NULL, 0, 0, "", ""); + win_save_print(window, '-', NULL, 0, 0, "", ""); } } @@ -2594,16 +2600,17 @@ _ui_handle_form_field(ProfWin *window, char *tag, FormField *field) static void _ui_show_form(ProfMucConfWin *confwin) { + ProfWin *window = (ProfWin*) confwin; if (confwin->form->title != NULL) { - win_save_print(&confwin->super, '-', NULL, NO_EOL, 0, "", "Form title: "); - win_save_print(&confwin->super, '-', NULL, NO_DATE, 0, "", confwin->form->title); + win_save_print(window, '-', NULL, NO_EOL, 0, "", "Form title: "); + win_save_print(window, '-', NULL, NO_DATE, 0, "", confwin->form->title); } else { gchar **split_recipient = g_strsplit(confwin->from, " ", 2); char *roomjid = split_recipient[0]; - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", "Configuration for room %s.", roomjid); + win_save_vprint(window, '-', NULL, 0, 0, "", "Configuration for room %s.", roomjid); g_strfreev(split_recipient); } - win_save_print(&confwin->super, '-', NULL, 0, 0, "", ""); + win_save_print(window, '-', NULL, 0, 0, "", ""); ui_show_form_help(confwin); @@ -2615,11 +2622,11 @@ _ui_show_form(ProfMucConfWin *confwin) if ((g_strcmp0(field->type, "fixed") == 0) && field->values) { if (field->values) { char *value = field->values->data; - win_save_print(&confwin->super, '-', NULL, 0, 0, "", value); + win_save_print(window, '-', NULL, 0, 0, "", value); } } else if (g_strcmp0(field->type, "hidden") != 0 && field->var) { char *tag = g_hash_table_lookup(confwin->form->var_to_tag, field->var); - _ui_handle_form_field(&confwin->super, tag, field); + _ui_handle_form_field(window, tag, field); } curr_field = g_slist_next(curr_field); @@ -2755,18 +2762,19 @@ _ui_handle_room_config_submit_result_error(const char * const roomjid, const cha static void _ui_show_form_field_help(ProfMucConfWin *confwin, char *tag) { + ProfWin *window = (ProfWin*) confwin; FormField *field = form_get_field_by_tag(confwin->form, tag); if (field != NULL) { - win_save_print(&confwin->super, '-', NULL, NO_EOL, 0, "", field->label); + win_save_print(window, '-', NULL, NO_EOL, 0, "", field->label); if (field->required) { - win_save_print(&confwin->super, '-', NULL, NO_DATE, 0, "", " (Required):"); + win_save_print(window, '-', NULL, NO_DATE, 0, "", " (Required):"); } else { - win_save_print(&confwin->super, '-', NULL, NO_DATE, 0, "", ":"); + win_save_print(window, '-', NULL, NO_DATE, 0, "", ":"); } if (field->description != NULL) { - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Description : %s", field->description); + win_save_vprint(window, '-', NULL, 0, 0, "", " Description : %s", field->description); } - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Type : %s", field->type); + win_save_vprint(window, '-', NULL, 0, 0, "", " Type : %s", field->type); int num_values = 0; GSList *curr_option = NULL; @@ -2775,51 +2783,51 @@ _ui_show_form_field_help(ProfMucConfWin *confwin, char *tag) switch (field->type_t) { case FIELD_TEXT_SINGLE: case FIELD_TEXT_PRIVATE: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Set : /%s ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is any text"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Set : /%s ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is any text"); break; case FIELD_TEXT_MULTI: num_values = form_get_value_count(confwin->form, tag); - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Add : /%s add ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is any text"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Add : /%s add ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is any text"); if (num_values > 0) { - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Where : between 'val1' and 'val%d'", num_values); + win_save_vprint(window, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); + win_save_vprint(window, '-', NULL, 0, 0, "", " Where : between 'val1' and 'val%d'", num_values); } break; case FIELD_BOOLEAN: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Set : /%s ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is either 'on' or 'off'"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Set : /%s ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is either 'on' or 'off'"); break; case FIELD_LIST_SINGLE: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Set : /%s ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is one of"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Set : /%s ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is one of"); curr_option = field->options; while (curr_option != NULL) { option = curr_option->data; - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " %s", option->value); + win_save_vprint(window, '-', NULL, 0, 0, "", " %s", option->value); curr_option = g_slist_next(curr_option); } break; case FIELD_LIST_MULTI: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Add : /%s add ", tag); - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is one of"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Add : /%s add ", tag); + win_save_vprint(window, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is one of"); curr_option = field->options; while (curr_option != NULL) { option = curr_option->data; - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " %s", option->value); + win_save_vprint(window, '-', NULL, 0, 0, "", " %s", option->value); curr_option = g_slist_next(curr_option); } break; case FIELD_JID_SINGLE: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Set : /%s ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is a valid Jabber ID"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Set : /%s ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is a valid Jabber ID"); break; case FIELD_JID_MULTI: - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Add : /%s add ", tag); - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", " Where : is a valid Jabber ID"); + win_save_vprint(window, '-', NULL, 0, 0, "", " Add : /%s add ", tag); + win_save_vprint(window, '-', NULL, 0, 0, "", " Remove : /%s remove ", tag); + win_save_print(window, '-', NULL, 0, 0, "", " Where : is a valid Jabber ID"); break; case FIELD_FIXED: case FIELD_UNKNOWN: @@ -2828,7 +2836,7 @@ _ui_show_form_field_help(ProfMucConfWin *confwin, char *tag) break; } } else { - win_save_vprint(&confwin->super, '-', NULL, 0, 0, "", "No such field %s", tag); + win_save_vprint(window, '-', NULL, 0, 0, "", "No such field %s", tag); } } @@ -2836,9 +2844,10 @@ static void _ui_show_form_help(ProfMucConfWin *confwin) { if (confwin->form->instructions != NULL) { - win_save_print(&confwin->super, '-', NULL, 0, 0, "", "Supplied instructions:"); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", confwin->form->instructions); - win_save_print(&confwin->super, '-', NULL, 0, 0, "", ""); + ProfWin *window = (ProfWin*) confwin; + win_save_print(window, '-', NULL, 0, 0, "", "Supplied instructions:"); + win_save_print(window, '-', NULL, 0, 0, "", confwin->form->instructions); + win_save_print(window, '-', NULL, 0, 0, "", ""); } } diff --git a/src/ui/occupantswin.c b/src/ui/occupantswin.c index 2afc3e26..64d5dc7b 100644 --- a/src/ui/occupantswin.c +++ b/src/ui/occupantswin.c @@ -61,7 +61,7 @@ _occupantswin_occupants(const char * const roomjid) if (mucwin) { GList *occupants = muc_roster(roomjid); if (occupants) { - ProfLayoutSplit *layout = (ProfLayoutSplit*)mucwin->super.layout; + ProfLayoutSplit *layout = (ProfLayoutSplit*)mucwin->window.layout; assert(layout->memcheck == LAYOUT_SPLIT_MEMCHECK); werase(layout->subwin); diff --git a/src/ui/window.c b/src/ui/window.c index 513f5842..c84a76bb 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -83,15 +83,15 @@ _win_create_simple_layout(void) int cols = getmaxx(stdscr); ProfLayoutSimple *layout = malloc(sizeof(ProfLayoutSimple)); - layout->super.type = LAYOUT_SIMPLE; - layout->super.win = newpad(PAD_SIZE, cols); - wbkgd(layout->super.win, theme_attrs(THEME_TEXT)); - layout->super.buffer = buffer_create(); - layout->super.y_pos = 0; - layout->super.paged = 0; - scrollok(layout->super.win, TRUE); + layout->base.type = LAYOUT_SIMPLE; + layout->base.win = newpad(PAD_SIZE, cols); + wbkgd(layout->base.win, theme_attrs(THEME_TEXT)); + layout->base.buffer = buffer_create(); + layout->base.y_pos = 0; + layout->base.paged = 0; + scrollok(layout->base.win, TRUE); - return &layout->super; + return &layout->base; } static ProfLayout* @@ -100,40 +100,40 @@ _win_create_split_layout(void) int cols = getmaxx(stdscr); ProfLayoutSplit *layout = malloc(sizeof(ProfLayoutSplit)); - layout->super.type = LAYOUT_SPLIT; - layout->super.win = newpad(PAD_SIZE, cols); - wbkgd(layout->super.win, theme_attrs(THEME_TEXT)); - layout->super.buffer = buffer_create(); - layout->super.y_pos = 0; - layout->super.paged = 0; - scrollok(layout->super.win, TRUE); + layout->base.type = LAYOUT_SPLIT; + layout->base.win = newpad(PAD_SIZE, cols); + wbkgd(layout->base.win, theme_attrs(THEME_TEXT)); + layout->base.buffer = buffer_create(); + layout->base.y_pos = 0; + layout->base.paged = 0; + scrollok(layout->base.win, TRUE); layout->subwin = NULL; layout->sub_y_pos = 0; layout->memcheck = LAYOUT_SPLIT_MEMCHECK; - return &layout->super; + return &layout->base; } ProfWin* win_create_console(void) { ProfConsoleWin *new_win = malloc(sizeof(ProfConsoleWin)); - new_win->super.type = WIN_CONSOLE; - new_win->super.layout = _win_create_split_layout(); - new_win->super.unread = 0; + new_win->window.type = WIN_CONSOLE; + new_win->window.layout = _win_create_split_layout(); + new_win->window.unread = 0; new_win->from = strdup(CONS_WIN_TITLE); - return &new_win->super; + return &new_win->window; } ProfWin* win_create_chat(const char * const barejid) { ProfChatWin *new_win = malloc(sizeof(ProfChatWin)); - new_win->super.type = WIN_CHAT; - new_win->super.layout = _win_create_simple_layout(); - new_win->super.unread = 0; + new_win->window.type = WIN_CHAT; + new_win->window.layout = _win_create_simple_layout(); + new_win->window.unread = 0; new_win->barejid = strdup(barejid); new_win->resource = NULL; @@ -143,7 +143,7 @@ win_create_chat(const char * const barejid) new_win->memcheck = PROFCHATWIN_MEMCHECK; - return &new_win->super; + return &new_win->window; } ProfWin* @@ -152,80 +152,80 @@ win_create_muc(const char * const roomjid) ProfMucWin *new_win = malloc(sizeof(ProfMucWin)); int cols = getmaxx(stdscr); - new_win->super.type = WIN_MUC; + new_win->window.type = WIN_MUC; ProfLayoutSplit *layout = malloc(sizeof(ProfLayoutSplit)); - layout->super.type = LAYOUT_SPLIT; + layout->base.type = LAYOUT_SPLIT; if (prefs_get_boolean(PREF_OCCUPANTS)) { int subwin_cols = win_occpuants_cols(); - layout->super.win = newpad(PAD_SIZE, cols - subwin_cols); - wbkgd(layout->super.win, theme_attrs(THEME_TEXT)); + layout->base.win = newpad(PAD_SIZE, cols - subwin_cols); + wbkgd(layout->base.win, theme_attrs(THEME_TEXT)); layout->subwin = newpad(PAD_SIZE, subwin_cols);; wbkgd(layout->subwin, theme_attrs(THEME_TEXT)); } else { - layout->super.win = newpad(PAD_SIZE, (cols)); - wbkgd(layout->super.win, theme_attrs(THEME_TEXT)); + layout->base.win = newpad(PAD_SIZE, (cols)); + wbkgd(layout->base.win, theme_attrs(THEME_TEXT)); layout->subwin = NULL; } layout->sub_y_pos = 0; layout->memcheck = LAYOUT_SPLIT_MEMCHECK; - layout->super.buffer = buffer_create(); - layout->super.y_pos = 0; - layout->super.paged = 0; - scrollok(layout->super.win, TRUE); - new_win->super.layout = (ProfLayout*)layout; + layout->base.buffer = buffer_create(); + layout->base.y_pos = 0; + layout->base.paged = 0; + scrollok(layout->base.win, TRUE); + new_win->window.layout = (ProfLayout*)layout; new_win->roomjid = strdup(roomjid); - new_win->super.unread = 0; + new_win->window.unread = 0; new_win->memcheck = PROFMUCWIN_MEMCHECK; - return &new_win->super; + return &new_win->window; } ProfWin* win_create_muc_config(const char * const title, DataForm *form) { ProfMucConfWin *new_win = malloc(sizeof(ProfMucConfWin)); - new_win->super.type = WIN_MUC_CONFIG; - new_win->super.layout = _win_create_simple_layout(); - new_win->super.unread = 0; + new_win->window.type = WIN_MUC_CONFIG; + new_win->window.layout = _win_create_simple_layout(); + new_win->window.unread = 0; new_win->from = strdup(title); new_win->form = form; new_win->memcheck = PROFCONFWIN_MEMCHECK; - return &new_win->super; + return &new_win->window; } ProfWin* win_create_private(const char * const fulljid) { ProfPrivateWin *new_win = malloc(sizeof(ProfPrivateWin)); - new_win->super.type = WIN_PRIVATE; - new_win->super.layout = _win_create_simple_layout(); - new_win->super.unread = 0; + new_win->window.type = WIN_PRIVATE; + new_win->window.layout = _win_create_simple_layout(); + new_win->window.unread = 0; new_win->fulljid = strdup(fulljid); new_win->memcheck = PROFPRIVATEWIN_MEMCHECK; - return &new_win->super; + return &new_win->window; } ProfWin* win_create_xmlconsole(void) { ProfXMLWin *new_win = malloc(sizeof(ProfXMLWin)); - new_win->super.type = WIN_XML; - new_win->super.layout = _win_create_simple_layout(); - new_win->super.unread = 0; + new_win->window.type = WIN_XML; + new_win->window.layout = _win_create_simple_layout(); + new_win->window.unread = 0; new_win->from = strdup(XML_WIN_TITLE); - return &new_win->super; + return &new_win->window; } void @@ -239,7 +239,7 @@ win_hide_subwin(ProfWin *window) layout->subwin = NULL; layout->sub_y_pos = 0; int cols = getmaxx(stdscr); - wresize(layout->super.win, PAD_SIZE, cols); + wresize(layout->base.win, PAD_SIZE, cols); win_redraw(window); } else { int cols = getmaxx(stdscr); @@ -267,7 +267,7 @@ win_show_subwin(ProfWin *window) ProfLayoutSplit *layout = (ProfLayoutSplit*)window->layout; layout->subwin = newpad(PAD_SIZE, subwin_cols); wbkgd(layout->subwin, theme_attrs(THEME_TEXT)); - wresize(layout->super.win, PAD_SIZE, cols - subwin_cols); + wresize(layout->base.win, PAD_SIZE, cols - subwin_cols); win_redraw(window); } @@ -279,8 +279,8 @@ win_free(ProfWin* window) if (layout->subwin) { delwin(layout->subwin); } - buffer_free(layout->super.buffer); - delwin(layout->super.win); + buffer_free(layout->base.buffer); + delwin(layout->base.win); } else { buffer_free(window->layout->buffer); delwin(window->layout->win); @@ -374,10 +374,10 @@ win_update_virtual(ProfWin *window) } else { subwin_cols = win_roster_cols(); } - pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); + pnoutrefresh(layout->base.win, layout->base.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); pnoutrefresh(layout->subwin, layout->sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1); } else { - pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, cols-1); + pnoutrefresh(layout->base.win, layout->base.y_pos, 0, 1, 0, rows-3, cols-1); } } else { pnoutrefresh(window->layout->win, window->layout->y_pos, 0, 1, 0, rows-3, cols-1); diff --git a/src/ui/window.h b/src/ui/window.h index ddf34c51..39df44d7 100644 --- a/src/ui/window.h +++ b/src/ui/window.h @@ -76,11 +76,11 @@ typedef struct prof_layout_t { } ProfLayout; typedef struct prof_layout_simple_t { - ProfLayout super; + ProfLayout base; } ProfLayoutSimple; typedef struct prof_layout_split_t { - ProfLayout super; + ProfLayout base; WINDOW *subwin; int sub_y_pos; unsigned long memcheck; @@ -102,12 +102,12 @@ typedef struct prof_win_t { } ProfWin; typedef struct prof_console_win_t { - ProfWin super; + ProfWin window; char *from; } ProfConsoleWin; typedef struct prof_chat_win_t { - ProfWin super; + ProfWin window; char *barejid; gboolean is_otr; gboolean is_trusted; @@ -117,26 +117,26 @@ typedef struct prof_chat_win_t { } ProfChatWin; typedef struct prof_muc_win_t { - ProfWin super; + ProfWin window; char *roomjid; unsigned long memcheck; } ProfMucWin; typedef struct prof_mucconf_win_t { - ProfWin super; + ProfWin window; char *from; DataForm *form; unsigned long memcheck; } ProfMucConfWin; typedef struct prof_private_win_t { - ProfWin super; + ProfWin window; char *fulljid; unsigned long memcheck; } ProfPrivateWin; typedef struct prof_xml_win_t { - ProfWin super; + ProfWin window; char *from; } ProfXMLWin; diff --git a/src/ui/windows.c b/src/ui/windows.c index a3a50a1d..1d660164 100644 --- a/src/ui/windows.c +++ b/src/ui/windows.c @@ -505,11 +505,11 @@ wins_resize_all(void) } else if (window->type == WIN_MUC) { subwin_cols = win_occpuants_cols(); } - wresize(layout->super.win, PAD_SIZE, cols - subwin_cols); + wresize(layout->base.win, PAD_SIZE, cols - subwin_cols); wresize(layout->subwin, PAD_SIZE, subwin_cols); rosterwin_roster(); } else { - wresize(layout->super.win, PAD_SIZE, cols); + wresize(layout->base.win, PAD_SIZE, cols); } } else { wresize(window->layout->win, PAD_SIZE, cols); @@ -551,12 +551,12 @@ wins_show_subwin(ProfWin *window) if (current_win->type == WIN_MUC) { ProfLayoutSplit *layout = (ProfLayoutSplit*)current_win->layout; subwin_cols = win_occpuants_cols(); - pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); + pnoutrefresh(layout->base.win, layout->base.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); pnoutrefresh(layout->subwin, layout->sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1); } else if (current_win->type == WIN_CONSOLE) { ProfLayoutSplit *layout = (ProfLayoutSplit*)current_win->layout; subwin_cols = win_roster_cols(); - pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); + pnoutrefresh(layout->base.win, layout->base.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1); pnoutrefresh(layout->subwin, layout->sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1); } } -- cgit 1.4.1-2-gfad0