Adding grid renderflag selection to GTK UI. Also, fixing recently-introduced bug regarding saving vanilla-GTK settings.

ver1_6_1
Pat Suwalski 2009-07-03 01:04:46 +00:00
parent fc8ff2ee43
commit 1d99ae5eb6
7 changed files with 82 additions and 5 deletions

View File

@ -817,12 +817,24 @@ void actionRenderConstellations(GtkToggleAction* action, AppData* app)
} }
void actionRenderEclipticGrid(GtkToggleAction* action, AppData* app)
{
setRenderFlag(app, Renderer::ShowEclipticGrid, gtk_toggle_action_get_active(action));
}
void actionRenderEclipseShadows(GtkToggleAction* action, AppData* app) void actionRenderEclipseShadows(GtkToggleAction* action, AppData* app)
{ {
setRenderFlag(app, Renderer::ShowEclipseShadows, gtk_toggle_action_get_active(action)); setRenderFlag(app, Renderer::ShowEclipseShadows, gtk_toggle_action_get_active(action));
} }
void actionRenderGalacticGrid(GtkToggleAction* action, AppData* app)
{
setRenderFlag(app, Renderer::ShowGalacticGrid, gtk_toggle_action_get_active(action));
}
void actionRenderGalaxies(GtkToggleAction* action, AppData* app) void actionRenderGalaxies(GtkToggleAction* action, AppData* app)
{ {
setRenderFlag(app, Renderer::ShowGalaxies, gtk_toggle_action_get_active(action)); setRenderFlag(app, Renderer::ShowGalaxies, gtk_toggle_action_get_active(action));
@ -835,6 +847,12 @@ void actionRenderGlobulars(GtkToggleAction* action, AppData* app)
} }
void actionRenderHorizontalGrid(GtkToggleAction* action, AppData* app)
{
setRenderFlag(app, Renderer::ShowHorizonGrid, gtk_toggle_action_get_active(action));
}
void actionRenderMarkers(GtkToggleAction* action, AppData* app) void actionRenderMarkers(GtkToggleAction* action, AppData* app)
{ {
setRenderFlag(app, Renderer::ShowMarkers, gtk_toggle_action_get_active(action)); setRenderFlag(app, Renderer::ShowMarkers, gtk_toggle_action_get_active(action));
@ -1276,9 +1294,9 @@ void resyncRenderActions(AppData* app)
/* Unlike the other interfaces, which go through each menu item and set /* Unlike the other interfaces, which go through each menu item and set
* the corresponding renderFlag, we go the other way and set the menu * the corresponding renderFlag, we go the other way and set the menu
* based on the renderFlag. Last one is ShowGlobulars. */ * based on the renderFlag. Last one is ShowEcliptic. */
for (int i = Renderer::ShowStars; i <= Renderer::ShowGlobulars; i *= 2) for (int i = Renderer::ShowStars; i <= Renderer::ShowEcliptic; i *= 2)
{ {
switch (i) switch (i)
{ {
@ -1303,6 +1321,11 @@ void resyncRenderActions(AppData* app)
case Renderer::ShowNebulae: actionName = "RenderNebulae"; break; case Renderer::ShowNebulae: actionName = "RenderNebulae"; break;
case Renderer::ShowOpenClusters: actionName = "RenderOpenClusters"; break; case Renderer::ShowOpenClusters: actionName = "RenderOpenClusters"; break;
case Renderer::ShowGlobulars: actionName = "RenderGlobulars"; break; case Renderer::ShowGlobulars: actionName = "RenderGlobulars"; break;
case Renderer::ShowCloudShadows: actionName = NULL; break; /* Not implemented yet */
case Renderer::ShowGalacticGrid: actionName = "RenderGalacticGrid"; break;
case Renderer::ShowEclipticGrid: actionName = "RenderEclipticGrid"; break;
case Renderer::ShowHorizonGrid: actionName = "RenderHorizontalGrid"; break;
case Renderer::ShowEcliptic: actionName = NULL; break; /* Not implemented yet */
default: actionName = NULL; default: actionName = NULL;
} }

View File

@ -79,8 +79,11 @@ void actionRenderCometTails(GtkToggleAction*, AppData*);
void actionRenderConstellationBoundaries(GtkToggleAction*, AppData*); void actionRenderConstellationBoundaries(GtkToggleAction*, AppData*);
void actionRenderConstellations(GtkToggleAction*, AppData*); void actionRenderConstellations(GtkToggleAction*, AppData*);
void actionRenderEclipseShadows(GtkToggleAction*, AppData*); void actionRenderEclipseShadows(GtkToggleAction*, AppData*);
void actionRenderEclipticGrid(GtkToggleAction*, AppData*);
void actionRenderGalacticGrid(GtkToggleAction*, AppData*);
void actionRenderGalaxies(GtkToggleAction*, AppData*); void actionRenderGalaxies(GtkToggleAction*, AppData*);
void actionRenderGlobulars(GtkToggleAction*, AppData*); void actionRenderGlobulars(GtkToggleAction*, AppData*);
void actionRenderHorizontalGrid(GtkToggleAction*, AppData*);
void actionRenderMarkers(GtkToggleAction*, AppData*); void actionRenderMarkers(GtkToggleAction*, AppData*);
void actionRenderNebulae(GtkToggleAction*, AppData*); void actionRenderNebulae(GtkToggleAction*, AppData*);
void actionRenderNightLights(GtkToggleAction*, AppData*); void actionRenderNightLights(GtkToggleAction*, AppData*);

View File

@ -359,6 +359,36 @@
<short>Render globulars.</short> <short>Render globulars.</short>
</locale> </locale>
</schema> </schema>
<schema>
<key>/schemas/apps/celestia/render/gridEcliptic</key>
<applyto>/apps/celestia/render/gridEcliptic</applyto>
<owner>celestia</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Render ecliptic grid lines.</short>
</locale>
</schema>
<schema>
<key>/schemas/apps/celestia/render/gridHorizontal</key>
<applyto>/apps/celestia/render/gridHorizontal</applyto>
<owner>celestia</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Render horizontal grid lines.</short>
</locale>
</schema>
<schema>
<key>/schemas/apps/celestia/render/gridGalactic</key>
<applyto>/apps/celestia/render/gridGalactic</applyto>
<owner>celestia</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Render galactic grid lines.</short>
</locale>
</schema>
<!-- LABEL OPTIONS --> <!-- LABEL OPTIONS -->

View File

@ -41,7 +41,6 @@
<separator/> <separator/>
<menu action='ShowObjectsMenu'> <menu action='ShowObjectsMenu'>
<menuitem action='RenderAtmospheres'/> <menuitem action='RenderAtmospheres'/>
<menuitem action='RenderCelestialGrid'/>
<menuitem action='RenderClouds'/> <menuitem action='RenderClouds'/>
<menuitem action='RenderCometTails'/> <menuitem action='RenderCometTails'/>
<menuitem action='RenderConstellationBoundaries'/> <menuitem action='RenderConstellationBoundaries'/>
@ -56,6 +55,12 @@
<menuitem action='RenderRingShadows'/> <menuitem action='RenderRingShadows'/>
<menuitem action='RenderStars'/> <menuitem action='RenderStars'/>
</menu> </menu>
<menu action='ShowGridsMenu'>
<menuitem action='RenderCelestialGrid'/>
<menuitem action='RenderEclipticGrid'/>
<menuitem action='RenderGalacticGrid'/>
<menuitem action='RenderHorizontalGrid'/>
</menu>
<menu action='ShowLabelsMenu'> <menu action='ShowLabelsMenu'>
<menuitem action='LabelAsteroids'/> <menuitem action='LabelAsteroids'/>
<menuitem action='LabelComets'/> <menuitem action='LabelComets'/>

View File

@ -159,7 +159,10 @@ void applySettingsFileMain(AppData* app, GKeyFile* file)
getFlag(file, &rf, Renderer::ShowPartialTrajectories, "RenderFlags", "partialTrajectories", &errors); getFlag(file, &rf, Renderer::ShowPartialTrajectories, "RenderFlags", "partialTrajectories", &errors);
getFlag(file, &rf, Renderer::ShowNebulae, "RenderFlags", "nebulae", &errors); getFlag(file, &rf, Renderer::ShowNebulae, "RenderFlags", "nebulae", &errors);
getFlag(file, &rf, Renderer::ShowOpenClusters, "RenderFlags", "openClusters", &errors); getFlag(file, &rf, Renderer::ShowOpenClusters, "RenderFlags", "openClusters", &errors);
getFlag(file, &rf, Renderer::ShowGlobulars, "RenderFlags", "Globulars", &errors); getFlag(file, &rf, Renderer::ShowGlobulars, "RenderFlags", "globulars", &errors);
getFlag(file, &rf, Renderer::ShowGalacticGrid, "RenderFlags", "gridGalactic", &errors);
getFlag(file, &rf, Renderer::ShowEclipticGrid, "RenderFlags", "gridEcliptic", &errors);
getFlag(file, &rf, Renderer::ShowHorizonGrid, "RenderFlags", "gridHorizontal", &errors);
/* If any flag is missing, use defaults for all. */ /* If any flag is missing, use defaults for all. */
if (errors > 0) if (errors > 0)
@ -261,6 +264,9 @@ void saveSettingsFile(AppData* app)
g_key_file_set_boolean(file, "RenderFlags", "nebulae", rf & Renderer::ShowNebulae); g_key_file_set_boolean(file, "RenderFlags", "nebulae", rf & Renderer::ShowNebulae);
g_key_file_set_boolean(file, "RenderFlags", "openClusters", rf & Renderer::ShowOpenClusters); g_key_file_set_boolean(file, "RenderFlags", "openClusters", rf & Renderer::ShowOpenClusters);
g_key_file_set_boolean(file, "RenderFlags", "globulars", rf & Renderer::ShowGlobulars); g_key_file_set_boolean(file, "RenderFlags", "globulars", rf & Renderer::ShowGlobulars);
g_key_file_set_boolean(file, "RenderFlags", "gridGalactic", rf & Renderer::ShowGalacticGrid);
g_key_file_set_boolean(file, "RenderFlags", "gridEcliptic", rf & Renderer::ShowEclipticGrid);
g_key_file_set_boolean(file, "RenderFlags", "gridHorizontal", rf & Renderer::ShowHorizonGrid);
om = app->renderer->getOrbitMask(); om = app->renderer->getOrbitMask();
g_key_file_set_boolean(file, "OrbitMask", "planet", om & Body::Planet); g_key_file_set_boolean(file, "OrbitMask", "planet", om & Body::Planet);

View File

@ -175,6 +175,9 @@ void gcSetRenderFlag(int flag, gboolean state, GConfClient* client)
case Renderer::ShowNebulae: gcSetFlag(Render, "nebulae", state, client); break; case Renderer::ShowNebulae: gcSetFlag(Render, "nebulae", state, client); break;
case Renderer::ShowOpenClusters: gcSetFlag(Render, "openClusters", state, client); break; case Renderer::ShowOpenClusters: gcSetFlag(Render, "openClusters", state, client); break;
case Renderer::ShowGlobulars: gcSetFlag(Render, "globulars", state, client); break; case Renderer::ShowGlobulars: gcSetFlag(Render, "globulars", state, client); break;
case Renderer::ShowGalacticGrid: gcSetFlag(Render, "gridGalactic", state, client); break;
case Renderer::ShowEclipticGrid: gcSetFlag(Render, "gridEcliptic", state, client); break;
case Renderer::ShowHorizonGrid: gcSetFlag(Render, "gridHorizontal", state, client); break;
} }
} }
@ -463,6 +466,9 @@ static int readGConfRender(GConfClient* client)
rf |= Renderer::ShowNebulae * gconf_client_get_bool(client, "/apps/celestia/render/nebulae", NULL); rf |= Renderer::ShowNebulae * gconf_client_get_bool(client, "/apps/celestia/render/nebulae", NULL);
rf |= Renderer::ShowOpenClusters * gconf_client_get_bool(client, "/apps/celestia/render/openClusters", NULL); rf |= Renderer::ShowOpenClusters * gconf_client_get_bool(client, "/apps/celestia/render/openClusters", NULL);
rf |= Renderer::ShowGlobulars * gconf_client_get_bool(client, "/apps/celestia/render/globulars", NULL); rf |= Renderer::ShowGlobulars * gconf_client_get_bool(client, "/apps/celestia/render/globulars", NULL);
rf |= Renderer::ShowGalacticGrid * gconf_client_get_bool(client, "/apps/celestia/render/gridGalactic", NULL);
rf |= Renderer::ShowEclipticGrid * gconf_client_get_bool(client, "/apps/celestia/render/gridEcliptic", NULL);
rf |= Renderer::ShowHorizonGrid * gconf_client_get_bool(client, "/apps/celestia/render/gridHorizontal", NULL);
return rf; return rf;
} }

View File

@ -56,6 +56,7 @@ static const GtkActionEntry actionsPlain[] = {
{ "OptionsMenu", NULL, "_Options", NULL, NULL, NULL }, { "OptionsMenu", NULL, "_Options", NULL, NULL, NULL },
{ "ViewOptions", GTK_STOCK_PREFERENCES, "View _Options...", NULL, NULL, G_CALLBACK(actionViewOptions) }, { "ViewOptions", GTK_STOCK_PREFERENCES, "View _Options...", NULL, NULL, G_CALLBACK(actionViewOptions) },
{ "ShowObjectsMenu", NULL, "Show Objects", NULL, NULL, NULL }, { "ShowObjectsMenu", NULL, "Show Objects", NULL, NULL, NULL },
{ "ShowGridsMenu", NULL, "Show Grids", NULL, NULL, NULL },
{ "ShowLabelsMenu", NULL, "Show Labels", NULL, NULL, NULL }, { "ShowLabelsMenu", NULL, "Show Labels", NULL, NULL, NULL },
{ "ShowOrbitsMenu", NULL, "Show Orbits", NULL, NULL, NULL }, { "ShowOrbitsMenu", NULL, "Show Orbits", NULL, NULL, NULL },
{ "InfoTextMenu", NULL, "Info Text", NULL, NULL, NULL }, { "InfoTextMenu", NULL, "Info Text", NULL, NULL, NULL },
@ -132,7 +133,6 @@ static const GtkToggleActionEntry actionsRenderFlags[] = {
{ "RenderAA", NULL, "Antialiasing", "<control>X", NULL, G_CALLBACK(actionRenderAA), FALSE }, { "RenderAA", NULL, "Antialiasing", "<control>X", NULL, G_CALLBACK(actionRenderAA), FALSE },
{ "RenderAtmospheres", NULL, "Atmospheres", "<control>A", NULL, G_CALLBACK(actionRenderAtmospheres), FALSE }, { "RenderAtmospheres", NULL, "Atmospheres", "<control>A", NULL, G_CALLBACK(actionRenderAtmospheres), FALSE },
{ "RenderAutoMagnitude", NULL, "Auto Magnitude", "<control>Y", NULL, G_CALLBACK(actionRenderAutoMagnitude), FALSE }, { "RenderAutoMagnitude", NULL, "Auto Magnitude", "<control>Y", NULL, G_CALLBACK(actionRenderAutoMagnitude), FALSE },
{ "RenderCelestialGrid", NULL, "Celestial Grid", "semicolon", NULL, G_CALLBACK(actionRenderCelestialGrid), FALSE },
{ "RenderClouds", NULL, "Clouds", "I", NULL, G_CALLBACK(actionRenderClouds), FALSE }, { "RenderClouds", NULL, "Clouds", "I", NULL, G_CALLBACK(actionRenderClouds), FALSE },
{ "RenderCometTails", NULL, "Comet Tails", "<control>T", NULL, G_CALLBACK(actionRenderCometTails), FALSE }, { "RenderCometTails", NULL, "Comet Tails", "<control>T", NULL, G_CALLBACK(actionRenderCometTails), FALSE },
{ "RenderConstellationBoundaries", NULL, "Constellation Boundaries", NULL, NULL, G_CALLBACK(actionRenderConstellationBoundaries), FALSE }, { "RenderConstellationBoundaries", NULL, "Constellation Boundaries", NULL, NULL, G_CALLBACK(actionRenderConstellationBoundaries), FALSE },
@ -140,6 +140,10 @@ static const GtkToggleActionEntry actionsRenderFlags[] = {
{ "RenderEclipseShadows", NULL, "Eclipse Shadows", "<control>E", NULL, G_CALLBACK(actionRenderEclipseShadows), FALSE }, { "RenderEclipseShadows", NULL, "Eclipse Shadows", "<control>E", NULL, G_CALLBACK(actionRenderEclipseShadows), FALSE },
{ "RenderGalaxies", NULL, "Galaxies", "U", NULL, G_CALLBACK(actionRenderGalaxies), FALSE }, { "RenderGalaxies", NULL, "Galaxies", "U", NULL, G_CALLBACK(actionRenderGalaxies), FALSE },
{ "RenderGlobulars", NULL, "Globulars", "<shift>U", NULL, G_CALLBACK(actionRenderGlobulars), FALSE }, { "RenderGlobulars", NULL, "Globulars", "<shift>U", NULL, G_CALLBACK(actionRenderGlobulars), FALSE },
{ "RenderCelestialGrid", NULL, "Grid: Celestial", "semicolon", NULL, G_CALLBACK(actionRenderCelestialGrid), FALSE },
{ "RenderEclipticGrid", NULL, "Grid: Ecliptic", NULL, NULL, G_CALLBACK(actionRenderEclipticGrid), FALSE },
{ "RenderGalacticGrid", NULL, "Grid: Galactic", NULL, NULL, G_CALLBACK(actionRenderGalacticGrid), FALSE },
{ "RenderHorizontalGrid", NULL, "Grid: Horizontal", NULL, NULL, G_CALLBACK(actionRenderHorizontalGrid), FALSE },
{ "RenderMarkers", NULL, "Markers", "<control>M", NULL, G_CALLBACK(actionRenderMarkers), FALSE }, { "RenderMarkers", NULL, "Markers", "<control>M", NULL, G_CALLBACK(actionRenderMarkers), FALSE },
{ "RenderNebulae", NULL, "Nebulae", "asciicircum", NULL, G_CALLBACK(actionRenderNebulae), FALSE }, { "RenderNebulae", NULL, "Nebulae", "asciicircum", NULL, G_CALLBACK(actionRenderNebulae), FALSE },
{ "RenderNightLights", NULL, "Night Side Lights", "<control>L", NULL, G_CALLBACK(actionRenderNightLights), FALSE }, { "RenderNightLights", NULL, "Night Side Lights", "<control>L", NULL, G_CALLBACK(actionRenderNightLights), FALSE },