#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <glib.h>
#include <liberregxml/erregapi.h>
#include "commonData.h"
#include "connectPing.h"
Go to the source code of this file.
Copyright (C) 2007 iRex Technologies BV.
Definition in file editScreen.h.
enum editMode_t |
editModeNormal_e | |
editModeConnectNormal_e | |
editModeConnectCreate_e | |
editModeConnectFillIn_e | |
editModeUndef_e |
Definition at line 46 of file editScreen.h.
00047 { 00048 // launch profile editor normally(from device manager) 00049 editModeNormal_e = 0, 00050 // launch profile editor from connect screen 00051 // (by clicking the 'Profile editor' button 00052 editModeConnectNormal_e, 00053 // to create profile from connect screen 00054 // (by clicking the profile entry for a open-secured access point) 00055 editModeConnectCreate_e, 00056 // launch profile editor from connect screen 00057 // (in order to fill in some fields 00058 // for open access point with encryption) 00059 editModeConnectFillIn_e, 00060 editModeUndef_e 00061 } editMode_t;
enum editScreen_t |
editScreenProfiles_e | |
editScreenSearch_e | |
editScreenOverview_e | |
editScreenWireless_e | |
editScreenWirelessExt_e | |
editScreenDialup_e | |
editScreenStatic_e | |
editScreenProxy_e | |
editScreenUndefined_e |
Definition at line 64 of file editScreen.h.
00065 { 00066 editScreenProfiles_e = 0, 00067 editScreenSearch_e, 00068 editScreenOverview_e, 00069 editScreenWireless_e, 00070 editScreenWirelessExt_e, 00071 editScreenDialup_e, 00072 editScreenStatic_e, 00073 editScreenProxy_e, 00074 editScreenUndefined_e 00075 } editScreen_t;
gboolean edit_get_back_overview | ( | void | ) |
Definition at line 287 of file editScreen.c.
00288 { 00289 CN_LOGPRINTF("return %d", g_back_overview); 00290 return g_back_overview; 00291 }
gint edit_get_current_page | ( | gint * | pagecount | ) |
Definition at line 441 of file editScreen.c.
00442 { 00443 GtkNotebook *notebook = GTK_NOTEBOOK(g_edit_notebook); 00444 00445 // Get number of pages, when requested. 00446 if (pagecount != NULL) 00447 { 00448 *pagecount = gtk_notebook_get_n_pages(notebook); 00449 } 00450 00451 // Return current page number, counting from 0. 00452 return gtk_notebook_get_current_page(notebook); 00453 }
gboolean edit_get_in_set_network_settings | ( | void | ) |
Definition at line 267 of file editScreen.c.
00268 { 00269 CN_LOGPRINTF("return [%d]", g_in_set_network_settings); 00270 00271 return g_in_set_network_settings; 00272 }
int edit_get_initial_profile | ( | void | ) |
Definition at line 720 of file editScreen.c.
00721 { 00722 CN_LOGPRINTF("entry"); 00723 return 0; 00724 }
editMode_t edit_get_mode | ( | void | ) |
Definition at line 215 of file editScreen.c.
00216 { 00217 CN_LOGPRINTF("return mode[%d]", g_edit_mode); 00218 00219 return g_edit_mode; 00220 }
int edit_get_n_network_profiles | ( | void | ) |
Definition at line 726 of file editScreen.c.
00727 { 00728 CN_LOGPRINTF("entry"); 00729 return 1; 00730 }
const networkProfile_t* edit_get_network_profile | ( | int | profileIndex | ) |
Definition at line 732 of file editScreen.c.
00733 { 00734 regNetworkProfile_t* settings; 00735 00736 CN_LOGPRINTF("entry"); 00737 if (g_nw_settings) 00738 { 00739 common_data_destroy_network_profiles(g_nw_settings, 1); 00740 } 00741 00742 g_nw_settings = g_new0(networkProfile_t, 1); 00743 g_assert(g_nw_settings != NULL); 00744 00745 settings = edit_get_network_settings(); 00746 00747 g_nw_settings->scanSettings = NULL; 00748 00749 g_nw_settings->regSettingsList = g_new0(regNetworkProfile_t*, 1); 00750 g_nw_settings->regSettingsList[0] = (regNetworkProfile_t*)settings; 00751 g_nw_settings->regIndexList = g_new0(int, 1); 00752 g_nw_settings->regIndexList[0] = -1; 00753 g_nw_settings->nRegProfiles = 1; 00754 g_nw_settings->nActiveIndex = 0; 00755 00756 return (const networkProfile_t*)g_nw_settings; 00757 }
regNetworkProfile_t* edit_get_network_settings | ( | void | ) |
Definition at line 293 of file editScreen.c.
00294 { 00295 regNetworkProfile_t* settings; 00296 editMode_t mode; 00297 00298 CN_LOGPRINTF("entry"); 00299 00300 settings = g_new0(regNetworkProfile_t, 1); 00301 g_assert(settings != NULL); 00302 00303 edit_overview_get_network_settings(settings); 00304 00305 if (settings->connection == wireless_t) 00306 { 00307 mode = edit_get_mode(); 00308 if (mode == editModeConnectFillIn_e) 00309 { 00310 edit_wireless_ext_get_network_settings(settings); 00311 } 00312 else 00313 { 00314 edit_wireless_get_network_settings(settings); 00315 } 00316 } 00317 else if (settings->connection == dialup_t) 00318 { 00319 edit_dialup_get_network_settings(settings); 00320 } 00321 00322 if (settings->addressMode == static_t) 00323 { 00324 edit_static_get_network_settings(settings); 00325 } 00326 00327 if (settings->proxy) 00328 { 00329 edit_proxy_get_network_settings(settings); 00330 } 00331 00332 return settings; 00333 }
gboolean edit_get_wizard_mode | ( | void | ) |
Definition at line 252 of file editScreen.c.
00253 { 00254 CN_LOGPRINTF("return mode[%d]", g_wizard_mode); 00255 00256 return g_wizard_mode; 00257 }
void edit_goto_page | ( | gint | new_page | ) |
Definition at line 456 of file editScreen.c.
00457 { 00458 gint current_page; 00459 gint pagecount; 00460 00461 current_page = edit_get_current_page(&pagecount); 00462 00463 CN_LOGPRINTF("new_page %d - pagecount %d", new_page, pagecount); 00464 00465 // Only call leave() functions when we really leave the current page 00466 if (current_page != new_page) 00467 { 00468 // finishing touch on current page 00469 switch (current_page) 00470 { 00471 case editScreenStatic_e: 00472 edit_static_screen_leave(); 00473 break; 00474 case editScreenProxy_e: 00475 edit_proxy_screen_leave(); 00476 break; 00477 default: 00478 /* ignore */ ; 00479 } 00480 } 00481 else 00482 { 00483 // We need to remove the blinking led 00484 // because there will be no page_change callback 00485 // of the GTK_NOTEBOOK 00486 erbusy_off(); 00487 } 00488 00489 // goto new page 00490 if (new_page >= 0 && new_page < pagecount) 00491 { 00492 CN_LOGPRINTF("switch to new_page %d", new_page); 00493 00494 switch (new_page) 00495 { 00496 case editScreenOverview_e: 00497 edit_overview_show_profilename(); 00498 break; 00499 case editScreenProfiles_e: 00500 edit_profiles_display(); 00501 break; 00502 default: 00503 break; 00504 } 00505 00506 gtk_notebook_set_current_page(GTK_NOTEBOOK(g_edit_notebook), 00507 new_page); 00508 } 00509 }
void edit_on_connected | ( | void | ) |
Definition at line 765 of file editScreen.c.
00766 { 00767 int profileIndex; 00768 int nProfiles; 00769 int regIndex = -1; 00770 00771 CN_LOGPRINTF("entry"); 00772 00773 // get the connected profile's index in the registry 00774 profileIndex = edit_profiles_get_edited_profile_index(); 00775 CN_LOGPRINTF("profileIndex[%d]", profileIndex); 00776 00777 if (profileIndex == -1) 00778 { 00779 // it's creating a new profile, 00780 // the index in registry should be the last one 00781 nProfiles = common_data_get_n_profiles(); 00782 if (nProfiles > 0) 00783 { 00784 regIndex = nProfiles - 1; 00785 } 00786 } 00787 else 00788 { 00789 regIndex = edit_data_get_reg_index(profileIndex); 00790 } 00791 CN_LOGPRINTF("regIndex[%d]", regIndex); 00792 00793 // set the last connected profile 00794 connect_data_set_last_connected_profile(regIndex); 00795 00796 // start child process, if specified 00797 main_start_child_process(); 00798 }
void edit_restore_network_settings | ( | int | page | ) |
Definition at line 372 of file editScreen.c.
00373 { 00374 CN_LOGPRINTF("entry page[%d]", page); 00375 00376 switch (page) 00377 { 00378 case editScreenProfiles_e: 00379 case editScreenSearch_e: 00380 case editScreenOverview_e: 00381 // back icon is grey out at these pages 00382 // no need to restore the settings 00383 break; 00384 case editScreenWireless_e: 00385 edit_wireless_restore_network_settings(); 00386 break; 00387 case editScreenWirelessExt_e: 00388 edit_wireless_ext_restore_network_settings(); 00389 break; 00390 case editScreenDialup_e: 00391 edit_dialup_restore_network_settings(); 00392 break; 00393 case editScreenStatic_e: 00394 edit_static_restore_network_settings(); 00395 break; 00396 case editScreenProxy_e: 00397 edit_proxy_restore_network_settings(); 00398 break; 00399 case editScreenUndefined_e: 00400 default: 00401 break; 00402 } 00403 }
void edit_save_profile | ( | void | ) |
Definition at line 406 of file editScreen.c.
00407 { 00408 int profileIndex = -1; 00409 regNetworkProfile_t* settings = NULL; 00410 networkProfile_t network; 00411 00412 CN_LOGPRINTF("entry"); 00413 00414 // get network settings displayed on screen 00415 // and store these in the edit-screen data 00416 settings = edit_get_network_settings(); 00417 g_return_if_fail(settings != NULL); 00418 00419 network.regSettingsList = g_new0(regNetworkProfile_t*, 1); 00420 g_assert(network.regSettingsList != NULL); 00421 network.regSettingsList[0] = settings; 00422 network.regIndexList = NULL; 00423 network.nRegProfiles = 1; 00424 network.nActiveIndex = 0; 00425 00426 // get the profileIndex to be saved 00427 profileIndex = edit_profiles_get_edited_profile_index(); 00428 00429 // save the network profile into registry 00430 edit_data_set_network_profile(profileIndex, &network); 00431 00432 // free the memory 00433 erRegFreeNetworkProfile(settings); 00434 g_free(network.regSettingsList); 00435 00436 // save to registry 00437 edit_data_store_network_profiles(); 00438 }
GtkWidget* edit_screen_create | ( | void | ) |
Definition at line 124 of file editScreen.c.
00125 { 00126 GtkWidget* alignment; 00127 GtkWidget* vbox; 00128 GtkWidget* page; 00129 GtkWidget* widget; 00130 00131 CN_LOGPRINTF("entry"); 00132 00133 // alignment 00134 alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0); 00135 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 00136 0, 0, SCREEN_BORDER_LEFT, 0); 00137 g_signal_connect(alignment, "destroy", 00138 G_CALLBACK(on_edit_screen_destroy), NULL); 00139 gtk_widget_show(alignment); 00140 00141 // vbox 00142 vbox = gtk_vbox_new(FALSE, 0); 00143 gtk_container_add(GTK_CONTAINER(alignment), vbox); 00144 gtk_widget_show(vbox); 00145 00146 // g_edit_notebook 00147 widget = gtk_notebook_new(); 00148 gtk_widget_set_size_request(widget, -1, -1); 00149 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(widget), FALSE); 00150 gtk_notebook_set_show_border(GTK_NOTEBOOK(widget), FALSE); 00151 g_edit_notebook = widget; 00152 00153 page = edit_profiles_create(); 00154 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00155 00156 page = edit_search_create(); 00157 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00158 00159 page = edit_overview_create(); 00160 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00161 00162 page = edit_wireless_create(); 00163 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00164 00165 page = edit_wireless_ext_create(); 00166 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00167 00168 page = edit_dialup_create(); 00169 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00170 00171 page = edit_static_create(); 00172 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00173 00174 page = edit_proxy_create(); 00175 gtk_notebook_append_page(GTK_NOTEBOOK(g_edit_notebook), page, NULL); 00176 00177 // note book pages start counting from zero 00178 gtk_notebook_set_current_page(GTK_NOTEBOOK(g_edit_notebook), 0); 00179 g_signal_connect_after(g_edit_notebook, "switch-page", 00180 G_CALLBACK(on_edit_switch_page), NULL); 00181 00182 gtk_box_pack_start(GTK_BOX(vbox), g_edit_notebook, FALSE, FALSE, 0); 00183 gtk_widget_show(g_edit_notebook); 00184 00185 return alignment; 00186 }
void edit_screen_display | ( | void | ) |
Definition at line 202 of file editScreen.c.
00203 { 00204 int page; 00205 00206 CN_LOGPRINTF("entry"); 00207 00208 page = edit_get_current_page(NULL); 00209 if (page == editScreenProfiles_e) 00210 { 00211 edit_profiles_display(); 00212 } 00213 }
void edit_screen_set_text | ( | void | ) |
Definition at line 188 of file editScreen.c.
00189 { 00190 CN_LOGPRINTF("entry"); 00191 00192 edit_profiles_set_text(); 00193 edit_search_set_text(); 00194 edit_overview_set_text(); 00195 edit_wireless_set_text(); 00196 edit_wireless_ext_set_text(); 00197 edit_dialup_set_text(); 00198 edit_static_set_text(); 00199 edit_proxy_set_text(); 00200 }
gboolean edit_select_next_regprofile | ( | int | profileIndex | ) |
Definition at line 759 of file editScreen.c.
00760 { 00761 CN_LOGPRINTF("entry"); 00762 return FALSE; 00763 }
void edit_set_back_overview | ( | gboolean | back | ) |
Definition at line 281 of file editScreen.c.
00282 { 00283 CN_LOGPRINTF("entry [%d]", back); 00284 g_back_overview = back; 00285 }
void edit_set_in_set_network_settings | ( | gboolean | value | ) |
Definition at line 274 of file editScreen.c.
00275 { 00276 CN_LOGPRINTF("entry [%d]", value); 00277 00278 g_in_set_network_settings = value; 00279 }
void edit_set_mode | ( | editMode_t | mode | ) |
Definition at line 222 of file editScreen.c.
00223 { 00224 CN_LOGPRINTF("entry mode[%d]", mode); 00225 00226 if ((mode >= 0) && (mode < editModeUndef_e)) 00227 { 00228 g_edit_mode = mode; 00229 00230 bg_display_title(); 00231 00232 switch (mode) 00233 { 00234 case editModeConnectFillIn_e: 00235 case editModeConnectCreate_e: 00236 case editModeConnectNormal_e: 00237 edit_overview_enable_save_button(FALSE); 00238 edit_wireless_enable_save_button(FALSE); 00239 edit_dialup_enable_save_button(FALSE); 00240 break; 00241 case editModeNormal_e: 00242 edit_overview_enable_save_button(TRUE); 00243 edit_wireless_enable_save_button(TRUE); 00244 edit_dialup_enable_save_button(TRUE); 00245 default: 00246 break; 00247 } 00248 } 00249 }
void edit_set_network_settings | ( | const regNetworkProfile_t * | settings | ) |
Definition at line 335 of file editScreen.c.
00336 { 00337 editMode_t mode; 00338 00339 CN_LOGPRINTF("entry"); 00340 00341 g_return_if_fail(settings != NULL); 00342 00343 edit_set_in_set_network_settings(TRUE); 00344 00345 CN_LOGPRINTF("settings->connection=%d", settings->connection); 00346 00347 edit_overview_set_network_settings(settings); 00348 00349 if (settings->connection == wireless_t) 00350 { 00351 mode = edit_get_mode(); 00352 if (mode == editModeConnectFillIn_e) 00353 { 00354 edit_wireless_ext_set_network_settings(settings); 00355 } 00356 else 00357 { 00358 edit_wireless_set_network_settings(settings); 00359 } 00360 } 00361 else if (settings->connection == dialup_t) 00362 { 00363 edit_dialup_set_network_settings(settings); 00364 } 00365 00366 edit_static_set_network_settings(settings); 00367 edit_proxy_set_network_settings(settings); 00368 00369 edit_set_in_set_network_settings(FALSE); 00370 }
void edit_set_pagebar | ( | void | ) |
Definition at line 512 of file editScreen.c.
00513 { 00514 // a little overkill, 00515 // but this ensures the pageBar always has the correct currentApp 00516 pagebar_reset(); 00517 00518 // For edit screen only show one page. 00519 // This forces the user to navigate using the on-screen items 00520 pagebar_set_pagecount( 1 ); 00521 pagebar_goto_page( 1 ); 00522 pagebar_redraw(); 00523 }
void edit_set_toolbar | ( | void | ) |
Definition at line 526 of file editScreen.c.
00527 { 00528 CN_LOGPRINTF("entry"); 00529 00530 edit_show_back(); 00531 edit_show_keyboard(); 00532 edit_show_trashcan(); 00533 }
void edit_set_wizard_mode | ( | gboolean | mode | ) |
Definition at line 259 of file editScreen.c.
00260 { 00261 CN_LOGPRINTF("entry: mode [%d]", mode); 00262 00263 g_wizard_mode = mode; 00264 }
void edit_show_trashcan | ( | void | ) |
Definition at line 590 of file editScreen.c.
00591 { 00592 CN_LOGPRINTF("entry"); 00593 00594 switch (edit_get_current_page(NULL)) 00595 { 00596 case editScreenProfiles_e: 00597 if (edit_data_get_n_network_profiles() > 0) 00598 { 00599 toolbar_setIconState(iconID_trashcan, iconState_normal); 00600 } 00601 else 00602 { 00603 toolbar_setIconState(iconID_trashcan, iconState_grey); 00604 } 00605 break; 00606 00607 case editScreenSearch_e: 00608 case editScreenOverview_e: 00609 case editScreenWireless_e: 00610 case editScreenWirelessExt_e: 00611 case editScreenDialup_e: 00612 case editScreenStatic_e: 00613 case editScreenProxy_e: 00614 toolbar_setIconState(iconID_trashcan, iconState_grey); 00615 break; 00616 default: 00617 /* ignore */ ; 00618 } 00619 }
void on_edit_goto_page | ( | gint | new_page | ) |
Definition at line 639 of file editScreen.c.
00640 { 00641 CN_LOGPRINTF("entry: %d", new_page); 00642 00643 edit_goto_page(new_page - 1); // pagebar counts from 1 00644 }
void on_edit_icon_clicked | ( | int | iconID, | |
int | iconState | |||
) |
Definition at line 685 of file editScreen.c.
00686 { 00687 pingContext_t *ctxt; 00688 int page; 00689 00690 CN_LOGPRINTF("entry iconID[%d] iconState[%d]", iconID, iconState); 00691 00692 page = edit_get_current_page(NULL); 00693 switch (iconID) 00694 { 00695 case iconID_back: 00696 ctxt = cmgr_get_ping_ctxt(); 00697 if (!connect_ping_in_pinging(ctxt) 00698 && (iconState == iconState_normal)) 00699 { 00700 toolbar_setIconState(iconID_back, iconState_selected); 00701 cmgr_add_on_toolbar_sync_action(cmgr_back_page); 00702 toolbar_synchronise(); 00703 } 00704 break; 00705 case iconID_trashcan: 00706 if (page == editScreenProfiles_e) 00707 { 00708 on_edit_profiles_icon_clicked(iconID, iconState); 00709 } 00710 break; 00711 default: 00712 break; 00713 } 00714 }
gboolean on_edit_keypress | ( | GdkEventKey * | event | ) |
Definition at line 646 of file editScreen.c.
00647 { 00648 gboolean ret = FALSE; // return FALSE => default gtk handling 00649 00650 CN_LOGPRINTF("entry: keyval [0x%02X]", event->keyval); 00651 00652 switch (edit_get_current_page(NULL) ) 00653 { 00654 case editScreenProfiles_e: 00655 ret = on_edit_profiles_keypress(event); 00656 break; 00657 case editScreenSearch_e: 00658 ret = on_edit_search_keypress(event); 00659 break; 00660 case editScreenOverview_e: 00661 ret = on_edit_overview_keypress(event); 00662 break; 00663 case editScreenWireless_e: 00664 ret = on_edit_wireless_keypress(event); 00665 break; 00666 case editScreenWirelessExt_e: 00667 ret = on_edit_wireless_ext_keypress(event); 00668 break; 00669 case editScreenProxy_e: 00670 ret = on_edit_proxy_keypress(event); 00671 break; 00672 case editScreenStatic_e: 00673 ret = on_edit_static_keypress(event); 00674 break; 00675 case editScreenDialup_e: 00676 ret = on_edit_dialup_keypress(event); 00677 break; 00678 default: 00679 erbusy_off(); 00680 } 00681 00682 return ret; 00683 }