1 /* 2 * Celestia GTK+ Front-End 3 * Copyright (C) 2005 Pat Suwalski <pat@suwalski.net> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * $Id: ui.h,v 1.6 2006-12-12 00:31:01 suwalski Exp $ 11 */ 12 13 #ifndef GTK_UI_H 14 #define GTK_UI_H 15 16 #include <gtk/gtk.h> 17 18 #include "actions.h" 19 20 /* By default all action widgets are turned off. They will be set later when 21 * they are being synchronized with settings and with the core. */ 22 23 /* Regular Actions */ 24 static const GtkActionEntry actionsPlain[] = { 25 { "FileMenu", NULL, "_File", NULL, NULL, NULL }, 26 { "CopyURL", GTK_STOCK_COPY, "Copy _URL", NULL, NULL, G_CALLBACK(actionCopyURL) }, 27 { "OpenURL", NULL, "Open UR_L", NULL, NULL, G_CALLBACK(actionOpenURL) }, 28 { "OpenScript", GTK_STOCK_OPEN, "_Open Script...", NULL, NULL, G_CALLBACK(actionOpenScript) }, 29 { "CaptureImage", GTK_STOCK_SAVE_AS, "_Capture Image...", NULL, NULL, G_CALLBACK(actionCaptureImage) }, 30 { "CaptureMovie", GTK_STOCK_SAVE_AS, "Capture _Movie...", NULL, NULL, G_CALLBACK(actionCaptureMovie) }, 31 { "Quit", GTK_STOCK_QUIT, "_Quit", "<control>Q", NULL, G_CALLBACK(actionQuit) }, 32 33 { "NavigationMenu", NULL, "_Navigation", NULL, NULL, NULL }, 34 { "SelectSol", GTK_STOCK_HOME, "Select _Sol", "H", NULL, G_CALLBACK(actionSelectSol) }, 35 { "TourGuide", NULL, "Tour G_uide...", NULL, NULL, G_CALLBACK(actionTourGuide) }, 36 { "SearchObject", GTK_STOCK_FIND, "Search for _Object...", NULL, NULL, G_CALLBACK(actionSearchObject) }, 37 { "GotoObject", NULL, "Go to Object...", NULL, NULL, G_CALLBACK(actionGotoObject) }, 38 { "CenterSelection", NULL, "_Center Selection", "c", NULL, G_CALLBACK(actionCenterSelection) }, 39 { "GotoSelection", GTK_STOCK_JUMP_TO, "_Go to Selection", "G", NULL, G_CALLBACK(actionGotoSelection) }, 40 { "FollowSelection", NULL, "_Follow Selection", "F", NULL, G_CALLBACK(actionFollowSelection) }, 41 { "SyncSelection", NULL, "S_ync Orbit Selection", "Y", NULL, G_CALLBACK(actionSyncSelection) }, 42 { "TrackSelection", NULL, "_Track Selection", "T", NULL, G_CALLBACK(actionTrackSelection) }, 43 { "SystemBrowser", NULL, "Solar System _Browser...", NULL, NULL, G_CALLBACK(actionSystemBrowser) }, 44 { "StarBrowser", NULL, "Star B_rowser...", NULL, NULL, G_CALLBACK(actionStarBrowser) }, 45 { "EclipseFinder", NULL, "_Eclipse Finder...", NULL, NULL, G_CALLBACK(actionEclipseFinder) }, 46 47 { "TimeMenu", NULL, "_Time", NULL, NULL, NULL }, 48 { "TimeFaster", NULL, "10x _Faster", "L", NULL, G_CALLBACK(actionTimeFaster) }, 49 { "TimeSlower", NULL, "10x _Slower", "K", NULL, G_CALLBACK(actionTimeSlower) }, 50 { "TimeFreeze", NULL, "Free_ze", "space", NULL, G_CALLBACK(actionTimeFreeze) }, 51 { "TimeReal", NULL, "_Real Time", "backslash", NULL, G_CALLBACK(actionTimeReal) }, 52 { "TimeReverse", NULL, "Re_verse Time", "J", NULL, G_CALLBACK(actionTimeReverse) }, 53 { "TimeSet", NULL, "Set _Time...", NULL, NULL, G_CALLBACK(actionTimeSet) }, 54 /* "Show Local Time" in toggle actions */ 55 56 { "OptionsMenu", NULL, "_Options", NULL, NULL, NULL }, 57 { "ViewOptions", GTK_STOCK_PREFERENCES, "View _Options...", NULL, NULL, G_CALLBACK(actionViewOptions) }, 58 { "ShowObjectsMenu", NULL, "Show Objects", NULL, NULL, NULL }, 59 { "ShowGridsMenu", NULL, "Show Grids", NULL, NULL, NULL }, 60 { "ShowLabelsMenu", NULL, "Show Labels", NULL, NULL, NULL }, 61 { "ShowOrbitsMenu", NULL, "Show Orbits", NULL, NULL, NULL }, 62 { "InfoTextMenu", NULL, "Info Text", NULL, NULL, NULL }, 63 /* "Info Text" in radio actions */ 64 { "StarStyleMenu", NULL, "Star St_yle", NULL, NULL, NULL }, 65 /* "Star Style" in radio actions */ 66 { "AmbientLightMenu", NULL, "_Ambient Light", NULL, NULL, NULL }, 67 /* "Ambient Light" in radio actions */ 68 { "StarsMore", NULL, "_More Stars Visible", "bracketright", NULL, G_CALLBACK(actionStarsMore) }, 69 { "StarsFewer", NULL, "_Fewer Stars Visible", "bracketleft", NULL, G_CALLBACK(actionStarsFewer) }, 70 /* "VideoSync" in toggle actions */ 71 72 { "WindowMenu", NULL, "_Window", NULL, NULL, NULL }, 73 { "ViewerSize", GTK_STOCK_ZOOM_FIT, "Set Window Size...", NULL, NULL, G_CALLBACK(actionViewerSize) }, 74 /* "Full Screen" in toggle actions */ 75 { "MultiSplitH", NULL, "Split _Horizontally", "<control>R", NULL, G_CALLBACK(actionMultiSplitH) }, 76 { "MultiSplitV", NULL, "Split _Vertically", "<control>U", NULL, G_CALLBACK(actionMultiSplitV) }, 77 { "MultiCycle", NULL, "Cycle View", "Tab", NULL, G_CALLBACK(actionMultiCycle) }, 78 { "MultiDelete", NULL, "_Delete Active View", "Delete", NULL, G_CALLBACK(actionMultiDelete) }, 79 { "MultiSingle", NULL, "_Single View", "<control>D", NULL, G_CALLBACK(actionMultiSingle) }, 80 /* "Show Frames" in toggle actions */ 81 /* "Synchronize Time" in toggle actions */ 82 83 { "HelpMenu", NULL, "_Help", NULL, NULL, NULL }, 84 { "RunDemo", GTK_STOCK_EXECUTE, "Run _Demo", "D", NULL, G_CALLBACK(actionRunDemo) }, 85 { "HelpControls", GTK_STOCK_HELP, "_Controls", NULL, NULL, G_CALLBACK(actionHelpControls) }, 86 #if GTK_CHECK_VERSION(2, 7, 0) 87 { "HelpOpenGL", GTK_STOCK_INFO, "OpenGL _Info", NULL, NULL, G_CALLBACK(actionHelpOpenGL) }, 88 #else 89 { "HelpOpenGL", NULL, "OpenGL _Info", NULL, NULL, G_CALLBACK(actionHelpOpenGL) }, 90 #endif 91 { "HelpAbout", GTK_STOCK_ABOUT, "_About", NULL, NULL, G_CALLBACK(actionHelpAbout) }, 92 }; 93 94 95 /* Regular Checkbox Actions */ 96 static const GtkToggleActionEntry actionsToggle[] = { 97 { "TimeLocal", NULL, "Show _Local Time", NULL, NULL, G_CALLBACK(actionTimeLocal), FALSE }, 98 #if GTK_CHECK_VERSION(2, 7, 0) 99 { "FullScreen", GTK_STOCK_FULLSCREEN, "_Full Screen", "<alt>Return", NULL, G_CALLBACK(actionFullScreen), FALSE }, 100 #else 101 { "FullScreen", NULL, "_Full Screen", "<alt>Return", NULL, G_CALLBACK(actionFullScreen), FALSE }, 102 #endif /* GTK_CHECK_VERSION */ 103 { "MenuBarVisible", NULL, "_Menu Bar", "<control>M", NULL, G_CALLBACK(actionMenuBarVisible), TRUE }, 104 { "MultiShowFrames", NULL, "Show _Frames", NULL, NULL, G_CALLBACK(actionMultiShowFrames), FALSE }, 105 { "MultiShowActive", NULL, "Active Frame Highlighted", NULL, NULL, G_CALLBACK(actionMultiShowActive), FALSE }, 106 { "MultiSyncTime", NULL, "Synchronize _Time", NULL, NULL, G_CALLBACK(actionMultiSyncTime), FALSE }, 107 { "VideoSync", NULL, "_Limit Frame Rate", NULL, NULL, G_CALLBACK(actionVideoSync), TRUE }, 108 }; 109 110 111 /* Regular Radio Button Actions */ 112 static const GtkRadioActionEntry actionsVerbosity[] = { 113 { "HudNone", NULL, "_None", NULL, NULL, 0 }, 114 { "HudTerse", NULL, "_Terse", NULL, NULL, 1}, 115 { "HudVerbose", NULL, "_Verbose", NULL, NULL, 2}, 116 }; 117 118 static const GtkRadioActionEntry actionsStarStyle[] = { 119 { "StarsFuzzy", NULL, "_Fuzzy Points", NULL, NULL, Renderer::FuzzyPointStars }, 120 { "StarsPoints", NULL, "_Points", NULL, NULL, Renderer::PointStars }, 121 { "StarsDiscs", NULL, "Scaled _Discs", NULL, NULL, Renderer::ScaledDiscStars }, 122 }; 123 124 static const GtkRadioActionEntry actionsAmbientLight[] = { 125 { "AmbientNone", NULL, "_None", NULL, NULL, 0 }, 126 { "AmbientLow", NULL, "_Low", NULL, NULL, 1 }, 127 { "AmbientMedium", NULL, "_Medium", NULL, NULL, 2}, 128 }; 129 130 131 /* Render-Flag Actions */ 132 static const GtkToggleActionEntry actionsRenderFlags[] = { 133 { "RenderAA", NULL, "Antialiasing", "<control>X", NULL, G_CALLBACK(actionRenderAA), FALSE }, 134 { "RenderAtmospheres", NULL, "Atmospheres", "<control>A", NULL, G_CALLBACK(actionRenderAtmospheres), FALSE }, 135 { "RenderAutoMagnitude", NULL, "Auto Magnitude", "<control>Y", NULL, G_CALLBACK(actionRenderAutoMagnitude), FALSE }, 136 { "RenderClouds", NULL, "Clouds", "I", NULL, G_CALLBACK(actionRenderClouds), FALSE }, 137 { "RenderCometTails", NULL, "Comet Tails", "<control>T", NULL, G_CALLBACK(actionRenderCometTails), FALSE }, 138 { "RenderConstellationBoundaries", NULL, "Constellation Boundaries", NULL, NULL, G_CALLBACK(actionRenderConstellationBoundaries), FALSE }, 139 { "RenderConstellations", NULL, "Constellations", "slash", NULL, G_CALLBACK(actionRenderConstellations), FALSE }, 140 { "RenderEclipseShadows", NULL, "Eclipse Shadows", "<control>E", NULL, G_CALLBACK(actionRenderEclipseShadows), FALSE }, 141 { "RenderGalaxies", NULL, "Galaxies", "U", NULL, G_CALLBACK(actionRenderGalaxies), FALSE }, 142 { "RenderGlobulars", NULL, "Globulars", "<shift>U", NULL, G_CALLBACK(actionRenderGlobulars), FALSE }, 143 { "RenderCelestialGrid", NULL, "Grid: Celestial", "semicolon", NULL, G_CALLBACK(actionRenderCelestialGrid), FALSE }, 144 { "RenderEclipticGrid", NULL, "Grid: Ecliptic", NULL, NULL, G_CALLBACK(actionRenderEclipticGrid), FALSE }, 145 { "RenderGalacticGrid", NULL, "Grid: Galactic", NULL, NULL, G_CALLBACK(actionRenderGalacticGrid), FALSE }, 146 { "RenderHorizontalGrid", NULL, "Grid: Horizontal", NULL, NULL, G_CALLBACK(actionRenderHorizontalGrid), FALSE }, 147 { "RenderMarkers", NULL, "Markers", "<control>M", NULL, G_CALLBACK(actionRenderMarkers), FALSE }, 148 { "RenderNebulae", NULL, "Nebulae", "asciicircum", NULL, G_CALLBACK(actionRenderNebulae), FALSE }, 149 { "RenderNightLights", NULL, "Night Side Lights", "<control>L", NULL, G_CALLBACK(actionRenderNightLights), FALSE }, 150 { "RenderOpenClusters", NULL, "Open Clusters", NULL, NULL, G_CALLBACK(actionRenderOpenClusters), FALSE }, 151 { "RenderOrbits", NULL, "Orbits", "O", NULL, G_CALLBACK(actionRenderOrbits), FALSE }, 152 { "RenderPlanets", NULL, "Planets", NULL, NULL, G_CALLBACK(actionRenderPlanets), FALSE }, 153 { "RenderRingShadows", NULL, "Ring Shadows", NULL, NULL, G_CALLBACK(actionRenderRingShadows), FALSE }, 154 { "RenderStars", NULL, "Stars", NULL, NULL, G_CALLBACK(actionRenderStars), FALSE }, 155 }; 156 157 158 /* Orbit-Flag Actions */ 159 static const GtkToggleActionEntry actionsOrbitFlags[] = { 160 { "OrbitAsteroids", NULL, "Asteroids", NULL, NULL, G_CALLBACK(actionOrbitAsteroids), FALSE }, 161 { "OrbitComets", NULL, "Comets", NULL, NULL, G_CALLBACK(actionOrbitComets), FALSE }, 162 { "OrbitMoons", NULL, "Moons", NULL, NULL, G_CALLBACK(actionOrbitMoons), FALSE }, 163 { "OrbitPlanets", NULL, "Planets", NULL, NULL, G_CALLBACK(actionOrbitPlanets), FALSE }, 164 { "OrbitSpacecraft", NULL, "Spacecraft", NULL, NULL, G_CALLBACK(actionOrbitSpacecraft), FALSE }, 165 }; 166 167 /* Label-Flag Actions */ 168 static const GtkToggleActionEntry actionsLabelFlags[] = { 169 { "LabelAsteroids", NULL, "Asteroids", "W", NULL, G_CALLBACK(actionLabelAsteroids), FALSE }, 170 { "LabelComets", NULL, "Comets", "<shift>W", NULL, G_CALLBACK(actionLabelComets), FALSE }, 171 { "LabelConstellations", NULL, "Constellations", "equal", NULL, G_CALLBACK(actionLabelConstellations), FALSE }, 172 { "LabelGalaxies", NULL, "Galaxies", "E", NULL, G_CALLBACK(actionLabelGalaxies), FALSE }, 173 { "LabelGlobulars", NULL, "Globulars", "<shift>E", NULL, G_CALLBACK(actionLabelGlobulars), FALSE }, 174 { "LabelLocations", NULL, "Locations", NULL, NULL, G_CALLBACK(actionLabelLocations), FALSE }, 175 { "LabelMoons", NULL, "Moons", "M", NULL, G_CALLBACK(actionLabelMoons), FALSE }, 176 { "LabelNebulae", NULL, "Nebulae", NULL, NULL, G_CALLBACK(actionLabelNebulae), FALSE }, 177 { "LabelOpenClusters", NULL, "Open Clusters", NULL, NULL, G_CALLBACK(actionLabelOpenClusters), FALSE }, 178 { "LabelPlanets", NULL, "Planets", "P", NULL, G_CALLBACK(actionLabelPlanets), FALSE }, 179 { "LabelSpacecraft", NULL, "Spacecraft", "N", NULL, G_CALLBACK(actionLabelSpacecraft), FALSE }, 180 { "LabelStars", NULL, "Stars", "B", NULL, G_CALLBACK(actionLabelStars), FALSE }, 181 182 /* 183 Does not appear to do anything yet: 184 { "LabelsLatin", NULL, "Labels in Latin", NULL, NULL, NULL, FALSE }, 185 */ 186 }; 187 188 #endif /* GTK_UI_H */ 189