From 3fb649cfc283e7c6a262de5080b143c2e9e6c7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Mon, 30 Nov 2015 01:13:00 +0100 Subject: [PATCH] Version 15.50 --- css/swad.css | 404 +++++++++++++++++++++++++++++------------------ swad_changelog.h | 4 +- swad_layout.c | 19 ++- swad_menu.c | 115 ++------------ swad_menu.h | 3 +- swad_tab.c | 28 ++-- swad_theme.c | 8 +- 7 files changed, 301 insertions(+), 280 deletions(-) diff --git a/css/swad.css b/css/swad.css index 5e64b8b7c..081499744 100644 --- a/css/swad.css +++ b/css/swad.css @@ -21,11 +21,8 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not,see . */ -a:link {text-decoration:none;} -a:visited {text-decoration:none;} -a:active {text-decoration:none;} -a:hover {text-decoration:underline;} +/********************************* Body **************************************/ body { margin:0; @@ -33,9 +30,19 @@ body font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-size:1em; } -input {font-size:12pt; vertical-align:middle;} -select {font-size:12pt;} -textarea {font-size:12pt;} +input + { + font-size:12pt; + vertical-align:middle; + } +select + { + font-size:12pt; + } +textarea + { + font-size:12pt; + } table { box-sizing:border-box; @@ -71,6 +78,13 @@ hr.GREY_SEPARA {height:0; border-top:0; border-bottom:#707070 dotted 1px;} hr.BLUE_SEPARA {height:0; border-top:0; border-bottom:#4D88A1 dotted 1px;} hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} +/*********************** Text decoration of links ****************************/ +a:link {text-decoration:none;} +a:visited {text-decoration:none;} +a:active {text-decoration:none;} +a:hover {text-decoration:underline;} +.MENU_LIST_ITEM a:hover {text-decoration:none;} + /****************** Layout (the whole page with a background) ****************/ #whole_page_white { @@ -153,12 +167,13 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} text-align:left; vertical-align:middle; } -@media only screen and (max-width: 1279px) { /* For mobile phones and tablets */ +@media only screen and (max-width: 1279px) + { /* For mobile phones and tablets */ #head_search_text { display:none; } -} + } #head_row_1_usr_lang { @@ -200,7 +215,8 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} .GREY_CUR_TIME {color:#E0E0E0; font-size:14pt; font-weight:bold;} .BLUE_CUR_TIME {color:#BAD2DA; font-size:14pt; font-weight:bold;} .YELLOW_CUR_TIME {color:#B3B0B3; font-size:14pt; font-weight:bold;} -@media only screen and (max-width: 1023px) { /* For mobile phones */ +@media only screen and (max-width: 1023px) + { /* For mobile phones */ #current_date { display:none; @@ -209,13 +225,14 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} { display:none; } -} -@media only screen and (min-width: 1024px) and (max-width: 1279px) { /* For tablets */ + } +@media only screen and (min-width: 1024px) and (max-width: 1279px) + { /* For tablets */ #current_date { display:none; } -} + } #head_row_2_hierarchy { @@ -239,7 +256,8 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} vertical-align:top; padding-top:10px; } -@media only screen and (max-width: 1023px) { /* For mobile phones */ +@media only screen and (max-width: 1023px) + { /* For mobile phones */ #notif_all { display:none; @@ -248,13 +266,14 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} { display:none; } -} -@media only screen and (min-width: 1024px) and (max-width: 1279px) { /* For tablets */ + } +@media only screen and (min-width: 1024px) and (max-width: 1279px) + { /* For tablets */ #notif_all { display:none; } -} + } .WHITE_NOTIF {color:#707070; font-size:12pt; white-space:nowrap;} .GREY_NOTIF {color:#E0E0E0; font-size:12pt; white-space:nowrap;} .BLUE_NOTIF {color:white; font-size:12pt; white-space:nowrap;} @@ -399,7 +418,8 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} width:148px; } -@media only screen and (max-width: 1279px) { /* For mobile phones and tablets */ +@media only screen and (max-width: 1279px) + { /* For mobile phones and tablets */ #main_zone_central_none, #main_zone_central_left, #main_zone_central_right, #main_zone_central_both { display:table-cell; @@ -414,8 +434,9 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} { display:none; } -} -@media only screen and (min-width: 1280px) { /* For desktop */ + } +@media only screen and (min-width: 1280px) + { /* For desktop */ #main_zone_central_none /* Hide left and right columns */ { display:table-cell; @@ -460,174 +481,255 @@ hr.YELLOW_SEPARA {height:0; border-top:0; border-bottom:#BD4815 dotted 1px;} position:absolute; right:0; } -} - -#main_zone_central_container - { - box-sizing:border-box; - min-width:900px; - min-height:900px; - margin:-8px 0 0 0; - padding:8px 0; - border-radius:6px; - box-shadow:inset -2px -2px 1px 0 rgba(50,50,50,0.2); - text-align:center; - vertical-align:top; - position:relative; } -/***************************** Horizontal menu *******************************/ -#menu_horizontal +@media only screen and (max-width: 1023px) + { /* For mobile-phones */ + #main_zone_central_container + { + box-sizing:border-box; + margin:-8px 0 0 0; + padding:8px 0; + border-radius:6px; + box-shadow:inset -2px -2px 1px 0 rgba(50,50,50,0.2); + text-align:center; + vertical-align:top; + position:relative; + } + } +@media only screen and (min-width: 1024px) + { /* For tablets and desktop */ + #main_zone_central_container + { + box-sizing:border-box; + min-width:900px; + min-height:900px; + margin:-8px 0 0 0; + padding:8px 0; + border-radius:6px; + box-shadow:inset -2px -2px 1px 0 rgba(50,50,50,0.2); + text-align:center; + vertical-align:top; + position:relative; + } + } + +/************* Main central zone with horizontal menu and canvas *************/ +#main_horizontal { box-sizing:border-box; width:100%; } -#menu_horizontal .MENU_BOX +#main_horizontal .MENU_LIST { - box-sizing:border-box; width:100%; - height:64px; - padding:8px 16px; - margin:0 auto; } -#menu_horizontal .MAIN_ZONE_CANVAS /* Where content for each action is written */ - { - box-sizing:border-box; - width:100%; - padding:8px 16px; - text-align:left; - vertical-align:top; - } -#menu_horizontal .MENU_LIST +#main_horizontal ul { display:table; - list-style-type:none; + box-sizing:border-box; + height:76px; margin:0 auto; - padding:0; + padding:8px 16px; + list-style-type:none; } -#menu_horizontal .MENU_LIST_ITEM +#main_horizontal .MENU_LIST_ITEM { display:table-cell; - box-sizing:border-box; - width:138px; - } -.MENU_LIST_ITEM a:hover - { - text-decoration:none; - } -#menu_horizontal .OPTION - { - box-sizing:border-box; - text-align:center; + width:120px; + height:60px; margin:0 auto; - padding:32px 2px 2px 2px; - background-size:32px 32px; - background-repeat:no-repeat; - background-position:center top; - overflow:hidden; + text-align:center; + vertical-align:middle; } -#menu_horizontal .OPTION_NOT_SELECTED +#main_horizontal .MENU_OPT_OFF { opacity:0.67; } -#menu_horizontal .OPTION_NOT_SELECTED:hover, #menu_horizontal .OPTION_SELECTED +#main_horizontal .MENU_OPT_OFF:hover, #main_horizontal .MENU_OPT_ON { opacity:1; transform:scale(1.2,1.2); } - -/******************************* Vertical menu *******************************/ -#menu_vertical +#main_horizontal .MENU_ICON + { + box-sizing:border-box; + padding:32px 0 0 0; + background-size:32px 32px; + background-repeat:no-repeat; + background-position:center top; + } +#main_horizontal .MAIN_ZONE_CANVAS /* Where content for each action is written */ { - display:table; box-sizing:border-box; width:100%; - margin:0 auto; - } -a:hover #menu_vertical.MENU_LIST_ITEM - { - text-decoration:none; - } -#menu_vertical .MENU_BOX - { - display:table-cell; - box-sizing:border-box; - width:180px; - padding-left:8px; - text-align:left; - vertical-align:top; - overflow:hidden; - } -#menu_vertical .MAIN_ZONE_CANVAS /* Where content for each action is written */ - { - display:table-cell; - box-sizing:border-box; padding:8px 16px; + margin:0 auto; text-align:left; vertical-align:top; } -#menu_vertical .MENU_LIST - { - display:table; - list-style-type:none; - margin:0; - padding:0; + +/************** Main central zone with vertical menu and canvas **************/ +@media only screen and (max-width: 1023px) + { /* For mobile phones */ + /* Mobile phone will display menu always in horizontal + so the CSS must draw menu really in horizontal */ + #main_vertical + { + box-sizing:border-box; + width:100%; + } + #main_vertical .MENU_LIST + { + width:100%; + } + #main_vertical ul + { + display:table; + box-sizing:border-box; + height:76px; + margin:0 auto; + padding:8px 16px; + list-style-type:none; + } + #main_vertical .MENU_LIST_ITEM + { + display:table-cell; + width:120px; + height:60px; + margin:0 auto; + text-align:center; + vertical-align:middle; + } + #main_vertical .MENU_OPT_OFF + { + opacity:0.67; + } + #main_vertical .MENU_OPT_OFF:hover, #main_vertical .MENU_OPT_ON + { + opacity:1; + transform:scale(1.2,1.2); + } + #main_vertical .MENU_ICON + { + box-sizing:border-box; + padding:32px 0 0 0; + background-size:32px 32px; + background-repeat:no-repeat; + background-position:center top; + } + #main_vertical .MAIN_ZONE_CANVAS /* Where content for each action is written */ + { + box-sizing:border-box; + width:100%; + padding:8px 16px; + margin:0 auto; + text-align:left; + vertical-align:top; + } + #action_title /* Do not display action title */ + { + display:none; + } } -#menu_vertical MENU_LIST_ITEM - { - display:block; - } -#menu_vertical .OPTION - { - display:table-cell; - vertical-align:middle; - height:40px; - clear:both; - margin:0 auto; - padding:2px 2px 2px 50px; - text-align:left; - vertical-align:middle; - background-size:40px 40px; - background-repeat:no-repeat; - background-position:2px 2px; - overflow:hidden; - } -#menu_vertical .OPTION_NOT_SELECTED - { - opacity:0.67; - } -#menu_vertical .OPTION_NOT_SELECTED:hover, #menu_vertical .OPTION_SELECTED - { - opacity:1; + +@media only screen and (min-width: 1024px) + { /* For tablets and desktop */ + #main_vertical + { + display:table; + box-sizing:border-box; + width:100%; + } + #main_vertical .MENU_LIST + { + display:table-cell; + box-sizing:border-box; + width:180px; + } + #main_vertical ul + { + display:table; + margin:0; + padding-left:8px; + list-style-type:none; + } + #main_vertical .MENU_LIST_ITEM + { + text-align:left; + } + #main_vertical .MENU_OPT_OFF + { + opacity:0.67; + } + #main_vertical .MENU_OPT_OFF:hover, #main_vertical .MENU_OPT_ON + { + opacity:1; + } + #main_vertical .MENU_ICON + { + display:table-cell; + height:42px; + vertical-align:middle; + padding:2px 2px 2px 50px; + background-size:40px 40px; + background-repeat:no-repeat; + background-position:2px 2px; + } + #main_vertical .MAIN_ZONE_CANVAS /* Where content for each action is written */ + { + display:table-cell; + box-sizing:border-box; + padding:8px 16px; + margin:0 auto; + text-align:left; + vertical-align:top; + } + #action_title + { + box-sizing:border-box; + width:400px; + min-height:70px; + clear:both; + margin:0 auto; + text-align:left; + background-size:64px 64px; + background-position:0 0; + background-repeat:no-repeat; + padding:4px 12px 12px 70px; + overflow:hidden; + } } /********************************* Menu fonts ********************************/ -.WHITE_MENU_OFF {color:#4D88A1; font-size:12pt; font-weight:bold; line-height:110%;} -.GREY_MENU_OFF {color:#707070; font-size:12pt; font-weight:bold; line-height:110%;} -.BLUE_MENU_OFF {color:#4D88A1; font-size:12pt; font-weight:bold; line-height:110%;} -.YELLOW_MENU_OFF {color:#BD4815; font-size:12pt; font-weight:bold; line-height:110%;} - -.WHITE_MENU_ON {color:#4D88A1; font-size:12pt; font-weight:bold; line-height:110%;} -.GREY_MENU_ON {color:#606060; font-size:12pt; font-weight:bold; line-height:110%;} -.BLUE_MENU_ON {color:#4D88A1; font-size:12pt; font-weight:bold; line-height:110%;} -.YELLOW_MENU_ON {color:#BD4815; font-size:12pt; font-weight:bold; line-height:110%;} - -/****************** Title of current action in main block ********************/ -#action_title - { - box-sizing:border-box; - width:400px; - min-height:70px; - clear:both; - margin:0 auto; - text-align:left; - background-size:64px 64px; - background-position:0 0; - background-repeat:no-repeat; - padding:4px 12px 12px 70px; - overflow:hidden; +@media only screen and (max-width: 799px) + { /* For mobile-phones */ + .MENU_TEXT + { + display:none; + } + } +@media only screen and (min-width: 800px) + { /* For tablets and desktop */ + .MENU_TEXT + { + font-size:12pt; + font-weight:bold; + line-height:110%; + } } +.WHITE_MENU_OFF {color:#4D88A1;} +.GREY_MENU_OFF {color:#707070;} +.BLUE_MENU_OFF {color:#4D88A1;} +.YELLOW_MENU_OFF {color:#BD4815;} + +.WHITE_MENU_ON {color:#4D88A1;} +.GREY_MENU_ON {color:#606060;} +.BLUE_MENU_ON {color:#4D88A1;} +.YELLOW_MENU_ON {color:#BD4815;} + +/****************** Title of current action in main block ********************/ .WHITE_TITLE_ACTION {color:#606060; font-size:20pt;} .GREY_TITLE_ACTION {color:#606060; font-size:20pt;} .BLUE_TITLE_ACTION {color:#4D88A1; font-size:20pt;} diff --git a/swad_changelog.h b/swad_changelog.h index 1af1641a8..a86c68218 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -117,11 +117,13 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.49.4 (2015/11/29)" +#define Log_PLATFORM_VERSION "SWAD 15.50 (2015/11/30)" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 15.50: Nov 30, 2015 Changes in layout of menus. + Responsive design in menu: when screen is small, horizontal menu is drawn. (186514 lines) Version 15.49.4: Nov 29, 2015 Changes in layout of menus. (186481 lines) Version 15.49.3: Nov 29, 2015 Changes in layout of menus. (186502 lines) Version 15.49.2: Nov 29, 2015 Changes in layout of menus. (186501 lines) diff --git a/swad_layout.c b/swad_layout.c index 8b0ae91cf..e96eced28 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -110,7 +110,12 @@ void Lay_WriteStartOfPage (void) "whole_page_grey", // The_THEME_GREY "whole_page_blue", // The_THEME_BLUE "whole_page_yellow", // The_THEME_YELLOW - }; + }; + const char *LayoutMainZone[Mnu_NUM_MENUS] = + { + "main_horizontal", // Mnu_MENU_HORIZONTAL + "main_vertical", // Mnu_MENU_VERTICAL + }; /***** If, when this function is called, the head is being written or the head is already written ==> don't do anything *****/ @@ -298,14 +303,14 @@ void Lay_WriteStartOfPage (void) } fprintf (Gbl.F.Out,"
", The_TabOnBgColors[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,"
", - Gbl.Prefs.Menu == Mnu_MENU_VERTICAL ? "menu_vertical" : - "menu_horizontal"); + + /* Layout with horizontal or vertical menu */ + fprintf (Gbl.F.Out,"
",LayoutMainZone[Gbl.Prefs.Menu]); /* Menu */ Mnu_WriteMenuThisTab (); - /* Start of main zone for actions output */ + /* Start of canvas: main zone for actions output */ fprintf (Gbl.F.Out,"
"); /* Write warning when degree type does not allow direct login */ @@ -349,8 +354,8 @@ static void Lay_WriteEndOfPage (void) if (!Gbl.Layout.DivsEndWritten) { /***** End of central part of main zone *****/ - fprintf (Gbl.F.Out,"
" // main_zone_canvas - "
" // menu_horizontal or menu_vertical + fprintf (Gbl.F.Out,"
" // Canvas (main zone to output content of the current action) + "
" // Layout with horizontal or vertical menu ""); // main_zone_central_container /***** Write page footer *****/ diff --git a/swad_menu.c b/swad_menu.c index 5fe759115..1c90a8181 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -72,8 +72,8 @@ const char *Mnu_MenuIcons[Mnu_NUM_MENUS] = void Mnu_WriteMenuThisTab (void) { - extern const char *The_ClassMenuOn[The_NUM_THEMES]; - extern const char *The_ClassMenuOff[The_NUM_THEMES]; + extern const char *The_ClassTxtMenuOn[The_NUM_THEMES]; + extern const char *The_ClassTxtMenuOff[The_NUM_THEMES]; extern const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; unsigned NumOptInMenu; @@ -82,8 +82,8 @@ void Mnu_WriteMenuThisTab (void) bool IsTheSelectedAction; /***** Menu start *****/ - fprintf (Gbl.F.Out,"
" - "
    "); + fprintf (Gbl.F.Out,"
    " + "
      "); /***** Loop to write all options in menu. Each row holds an option *****/ for (NumOptInMenu = 0; @@ -104,30 +104,30 @@ void Mnu_WriteMenuThisTab (void) /***** Start of container used to highlight this option *****/ fprintf (Gbl.F.Out,"
      ", - IsTheSelectedAction ? "OPTION_SELECTED" : - "OPTION_NOT_SELECTED"); + IsTheSelectedAction ? "MENU_OPT_ON" : + "MENU_OPT_OFF"); /***** Start of form and link *****/ Act_FormStart (NumAct); Act_LinkFormSubmit (Title,NULL); /***** Icon *****/ - fprintf (Gbl.F.Out,"
      ", Gbl.Prefs.PathIconSet,Cfg_ICON_ACTION, Act_Actions[NumAct].Icon); /***** Text *****/ - fprintf (Gbl.F.Out,"
      %s", - IsTheSelectedAction ? The_ClassMenuOn[Gbl.Prefs.Theme] : - The_ClassMenuOff[Gbl.Prefs.Theme], + fprintf (Gbl.F.Out,"
      " + "%s" + "
      ", + IsTheSelectedAction ? The_ClassTxtMenuOn[Gbl.Prefs.Theme] : + The_ClassTxtMenuOff[Gbl.Prefs.Theme], Txt_MENU_TITLE[Gbl.CurrentTab][NumOptInMenu]); /***** End of link and form *****/ fprintf (Gbl.F.Out,"
      " - "
      " ""); - Act_FormEnd (); /***** End of container used to highlight this option *****/ @@ -140,94 +140,7 @@ void Mnu_WriteMenuThisTab (void) /***** Menu end *****/ fprintf (Gbl.F.Out,"
    " - "
    "); - } - -/*****************************************************************************/ -/******************* Write vertical menu of current tab **********************/ -/*****************************************************************************/ - -void Mnu_WriteVerticalMenuThisTab (void) - { - extern const char *The_ClassMenuOn[The_NUM_THEMES]; - extern const char *The_ClassMenuOff[The_NUM_THEMES]; - // extern const char *The_ClassSeparator[The_NUM_THEMES]; - extern const struct Act_Menu Act_Menu[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; - extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; - unsigned NumOptInMenu; - Act_Action_t NumAct; - const char *Title; - bool IsTheSelectedAction; - // bool SeparationBetweenPreviousAndCurrentOption = false; - // bool PreviousVisibleOptions = false; - - /***** Loop to write all options in menu. Each row holds an option *****/ - for (NumOptInMenu = 0; - NumOptInMenu < Act_MAX_OPTIONS_IN_MENU_PER_TAB; - NumOptInMenu++) - { - NumAct = Act_Menu[Gbl.CurrentTab][NumOptInMenu].Action; - if (NumAct == 0) // At the end of each tab, actions are initialized to 0, so 0 marks the end of the menu - break; - - if (Act_CheckIfIHavePermissionToExecuteAction (NumAct)) - { - IsTheSelectedAction = (NumAct == Act_Actions[Gbl.CurrentAct].SuperAction); - - Title = Act_GetSubtitleAction (NumAct); -/* - if (SeparationBetweenPreviousAndCurrentOption) - { - if (PreviousVisibleOptions) - fprintf (Gbl.F.Out,"
  • " - "
    " - "
  • ", - The_ClassSeparator[Gbl.Prefs.Theme]); - SeparationBetweenPreviousAndCurrentOption = false; - } -*/ - /***** Start of element *****/ - fprintf (Gbl.F.Out,"
  • "); - - /***** Start of container used to highlight this option *****/ - fprintf (Gbl.F.Out,"
    ", - IsTheSelectedAction ? "OPTION_SELECTED" : - "OPTION_NOT_SELECTED"); - - /***** Start of form and link *****/ - Act_FormStart (NumAct); - Act_LinkFormSubmit (Title,NULL); - - /***** Icon *****/ - fprintf (Gbl.F.Out,"
    ", - Gbl.Prefs.PathIconSet,Cfg_ICON_ACTION, - Act_Actions[NumAct].Icon); - - /***** Text *****/ - fprintf (Gbl.F.Out,"
    %s", - IsTheSelectedAction ? The_ClassMenuOn[Gbl.Prefs.Theme] : - The_ClassMenuOff[Gbl.Prefs.Theme], - Txt_MENU_TITLE[Gbl.CurrentTab][NumOptInMenu]); - - /***** End of link and form *****/ - fprintf (Gbl.F.Out,"
    " - "
    " - ""); - Act_FormEnd (); - - /***** End of container used to highlight this option *****/ - fprintf (Gbl.F.Out,"
    "); - - /***** End of element *****/ - fprintf (Gbl.F.Out,"
  • "); - - // PreviousVisibleOptions = true; - } - -// if (!SeparationBetweenPreviousAndCurrentOption) -// SeparationBetweenPreviousAndCurrentOption = Act_Menu[Gbl.CurrentTab][NumOptInMenu].SubsequentSeparation; - } + "
"); } /*****************************************************************************/ @@ -302,5 +215,5 @@ Mnu_Menu_t Mnu_GetParamMenu (void) if (UnsignedNum < Mnu_NUM_MENUS) return (Mnu_Menu_t) UnsignedNum; - return Mnu_MENU_UNKNOWN; + return Mnu_MENU_DEFAULT; } diff --git a/swad_menu.h b/swad_menu.h index d435ac47c..77c67f66d 100644 --- a/swad_menu.h +++ b/swad_menu.h @@ -37,11 +37,11 @@ /******************************* Public types ********************************/ /*****************************************************************************/ +#define Mnu_NUM_MENUS 2 typedef enum { Mnu_MENU_HORIZONTAL = 0, Mnu_MENU_VERTICAL = 1, - Mnu_MENU_UNKNOWN = 2, } Mnu_Menu_t; // Stored in database. Don't change numbers! #define Mnu_MENU_DEFAULT Mnu_MENU_HORIZONTAL @@ -50,7 +50,6 @@ typedef enum /*****************************************************************************/ void Mnu_WriteMenuThisTab (void); -void Mnu_WriteVerticalMenuThisTab (void); void Mnu_PutIconsToSelectMenu (void); void Mnu_ChangeMenu (void); diff --git a/swad_tab.c b/swad_tab.c index fdb632b56..c8ca5121a 100644 --- a/swad_tab.c +++ b/swad_tab.c @@ -80,8 +80,8 @@ static void Tab_WriteBreadcrumbAction (void); void Tab_DrawTabs (void) { - extern const char *The_ClassTabOn[The_NUM_THEMES]; - extern const char *The_ClassTabOff[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOn[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOff[The_NUM_THEMES]; extern const char *The_TabOnBgColors[The_NUM_THEMES]; extern const char *The_TabOffBgColors[The_NUM_THEMES]; extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS]; @@ -123,8 +123,8 @@ void Tab_DrawTabs (void) Act_FormStart (ActMnu); Par_PutHiddenParamUnsigned ("NxtTab",(unsigned) NumTab); Act_LinkFormSubmit (Txt_TABS_FULL_TXT[NumTab], - NumTab == Gbl.CurrentTab ? The_ClassTabOn[Gbl.Prefs.Theme] : - The_ClassTabOff[Gbl.Prefs.Theme]); + NumTab == Gbl.CurrentTab ? The_ClassTxtTabOn[Gbl.Prefs.Theme] : + The_ClassTxtTabOff[Gbl.Prefs.Theme]); fprintf (Gbl.F.Out,"\"%s\"" @@ -147,7 +147,7 @@ void Tab_DrawTabs (void) Tab_TabIcons[NumTab], Txt_TABS_FULL_TXT[NumTab], Txt_TABS_FULL_TXT[NumTab], - The_ClassTabOff[Gbl.Prefs.Theme], + The_ClassTxtTabOff[Gbl.Prefs.Theme], Txt_TABS_SHORT_TXT[NumTab]); fprintf (Gbl.F.Out,"" @@ -198,7 +198,7 @@ static bool Tab_CheckIfICanViewTab (Act_Tab_t Tab) void Tab_DrawBreadcrumb (void) { extern const char *The_TabOnBgColors[The_NUM_THEMES]; - extern const char *The_ClassTabOn[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOn[The_NUM_THEMES]; fprintf (Gbl.F.Out,"
", The_TabOnBgColors[Gbl.Prefs.Theme]); @@ -211,14 +211,14 @@ void Tab_DrawBreadcrumb (void) { /***** Tab *****/ fprintf (Gbl.F.Out," > ", - The_ClassTabOn[Gbl.Prefs.Theme]); + The_ClassTxtTabOn[Gbl.Prefs.Theme]); Tab_WriteBreadcrumbTab (); if (Act_Actions[Act_Actions[Gbl.CurrentAct].SuperAction].IndexInMenu >= 0) { /***** Menu *****/ fprintf (Gbl.F.Out," > ", - The_ClassTabOn[Gbl.Prefs.Theme]); + The_ClassTxtTabOn[Gbl.Prefs.Theme]); Tab_WriteBreadcrumbAction (); } } @@ -232,11 +232,11 @@ void Tab_DrawBreadcrumb (void) static void Tab_WriteBreadcrumbHome (void) { - extern const char *The_ClassTabOn[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOn[The_NUM_THEMES]; extern const char *Txt_Home_PAGE; Act_FormStart (ActHom); - Act_LinkFormSubmit (Txt_Home_PAGE,The_ClassTabOn[Gbl.Prefs.Theme]); + Act_LinkFormSubmit (Txt_Home_PAGE,The_ClassTxtTabOn[Gbl.Prefs.Theme]); fprintf (Gbl.F.Out,"%s", Txt_Home_PAGE); Act_FormEnd (); @@ -248,13 +248,13 @@ static void Tab_WriteBreadcrumbHome (void) static void Tab_WriteBreadcrumbTab (void) { - extern const char *The_ClassTabOn[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOn[The_NUM_THEMES]; extern const char *Txt_TABS_FULL_TXT[Tab_NUM_TABS]; /***** Start form *****/ Act_FormStart (ActMnu); Par_PutHiddenParamUnsigned ("NxtTab",(unsigned) Gbl.CurrentTab); - Act_LinkFormSubmit (Txt_TABS_FULL_TXT[Gbl.CurrentTab],The_ClassTabOn[Gbl.Prefs.Theme]); + Act_LinkFormSubmit (Txt_TABS_FULL_TXT[Gbl.CurrentTab],The_ClassTxtTabOn[Gbl.Prefs.Theme]); /***** Title and end of form *****/ fprintf (Gbl.F.Out,"%s", @@ -268,12 +268,12 @@ static void Tab_WriteBreadcrumbTab (void) static void Tab_WriteBreadcrumbAction (void) { - extern const char *The_ClassTabOn[The_NUM_THEMES]; + extern const char *The_ClassTxtTabOn[The_NUM_THEMES]; const char *Title = Act_GetTitleAction (Gbl.CurrentAct); /***** Start form *****/ Act_FormStart (Act_Actions[Gbl.CurrentAct].SuperAction); - Act_LinkFormSubmit (Title,The_ClassTabOn[Gbl.Prefs.Theme]); + Act_LinkFormSubmit (Title,The_ClassTxtTabOn[Gbl.Prefs.Theme]); /***** Title and end of form *****/ fprintf (Gbl.F.Out,"%s", diff --git a/swad_theme.c b/swad_theme.c index f1a61a312..12263d7a4 100644 --- a/swad_theme.c +++ b/swad_theme.c @@ -143,7 +143,7 @@ const char *The_ClassConnected[The_NUM_THEMES] = "YELLOW_CONNECTED", }; -const char *The_ClassMenuOff[The_NUM_THEMES] = +const char *The_ClassTxtMenuOff[The_NUM_THEMES] = { "WHITE_MENU_OFF", "GREY_MENU_OFF", @@ -151,7 +151,7 @@ const char *The_ClassMenuOff[The_NUM_THEMES] = "YELLOW_MENU_OFF", }; -const char *The_ClassMenuOn[The_NUM_THEMES] = +const char *The_ClassTxtMenuOn[The_NUM_THEMES] = { "WHITE_MENU_ON", "GREY_MENU_ON", @@ -159,7 +159,7 @@ const char *The_ClassMenuOn[The_NUM_THEMES] = "YELLOW_MENU_ON", }; -const char *The_ClassTabOff[The_NUM_THEMES] = +const char *The_ClassTxtTabOff[The_NUM_THEMES] = { "WHITE_TAB_OFF", "GREY_TAB_OFF", @@ -167,7 +167,7 @@ const char *The_ClassTabOff[The_NUM_THEMES] = "YELLOW_TAB_OFF", }; -const char *The_ClassTabOn[The_NUM_THEMES] = +const char *The_ClassTxtTabOn[The_NUM_THEMES] = { "WHITE_TAB_ON", "GREY_TAB_ON",