connectionMgr/inc/editScreen.h File Reference

connectionMgr - the entry of 'profile-editor' screen containing a editScreenProfiles and a editScreenSearch and a editScreenOverview and a editScreenWireless and a editScreenWirelessExt and a editScreenStatic and a editScreenProxy screen handling and event processing More...

#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <glib.h>
#include <liberregxml/erregapi.h>
#include "commonData.h"
#include "connectPing.h"

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  editMode_t {
  editModeNormal_e = 0, editModeConnectNormal_e, editModeConnectCreate_e, editModeConnectFillIn_e,
  editModeUndef_e
}
enum  editScreen_t {
  editScreenProfiles_e = 0, editScreenSearch_e, editScreenOverview_e, editScreenWireless_e,
  editScreenWirelessExt_e, editScreenDialup_e, editScreenStatic_e, editScreenProxy_e,
  editScreenUndefined_e
}

Functions

GtkWidget * edit_screen_create (void)
void edit_screen_set_text (void)
void edit_screen_display (void)
editMode_t edit_get_mode (void)
void edit_set_mode (editMode_t mode)
gboolean edit_get_wizard_mode (void)
void edit_set_wizard_mode (gboolean mode)
gboolean edit_get_in_set_network_settings (void)
void edit_set_in_set_network_settings (gboolean value)
gboolean edit_get_back_overview (void)
void edit_set_back_overview (gboolean back)
regNetworkProfile_tedit_get_network_settings (void)
void edit_set_network_settings (const regNetworkProfile_t *settings)
void edit_restore_network_settings (int page)
void edit_save_profile (void)
gint edit_get_current_page (gint *pagecount)
void edit_goto_page (gint new_page)
void edit_set_pagebar (void)
void edit_set_toolbar (void)
void edit_show_trashcan (void)
void on_edit_goto_page (gint new_page)
gboolean on_edit_keypress (GdkEventKey *event)
void on_edit_icon_clicked (int iconID, int iconState)
int edit_get_initial_profile (void)
int edit_get_n_network_profiles (void)
const networkProfile_tedit_get_network_profile (int profileIndex)
gboolean edit_select_next_regprofile (int profileIndex)
void edit_on_connected (void)


Detailed Description

connectionMgr - the entry of 'profile-editor' screen containing a editScreenProfiles and a editScreenSearch and a editScreenOverview and a editScreenWireless and a editScreenWirelessExt and a editScreenStatic and a editScreenProxy screen handling and event processing

Copyright (C) 2007 iRex Technologies BV.

Definition in file editScreen.h.


Enumeration Type Documentation

enum editMode_t

Enumerator:
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;

Enumerator:
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.


Function Documentation

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

void edit_screen_set_text ( void   ) 

Definition at line 188 of file editScreen.c.

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:

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 }

Here is the call graph for this function:


Generated on Sun Dec 14 17:15:36 2008 by  doxygen 1.5.6