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)
{
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)
{
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)
{
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
* 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)
{
@ -1303,6 +1321,11 @@ void resyncRenderActions(AppData* app)
case Renderer::ShowNebulae: actionName = "RenderNebulae"; break;
case Renderer::ShowOpenClusters: actionName = "RenderOpenClusters"; 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;
}

View File

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

View File

@ -359,6 +359,36 @@
<short>Render globulars.</short>
</locale>
</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 -->

View File

@ -41,7 +41,6 @@
<separator/>
<menu action='ShowObjectsMenu'>
<menuitem action='RenderAtmospheres'/>
<menuitem action='RenderCelestialGrid'/>
<menuitem action='RenderClouds'/>
<menuitem action='RenderCometTails'/>
<menuitem action='RenderConstellationBoundaries'/>
@ -56,6 +55,12 @@
<menuitem action='RenderRingShadows'/>
<menuitem action='RenderStars'/>
</menu>
<menu action='ShowGridsMenu'>
<menuitem action='RenderCelestialGrid'/>
<menuitem action='RenderEclipticGrid'/>
<menuitem action='RenderGalacticGrid'/>
<menuitem action='RenderHorizontalGrid'/>
</menu>
<menu action='ShowLabelsMenu'>
<menuitem action='LabelAsteroids'/>
<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::ShowNebulae, "RenderFlags", "nebulae", &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 (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", "openClusters", rf & Renderer::ShowOpenClusters);
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();
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::ShowOpenClusters: gcSetFlag(Render, "openClusters", 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::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::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;
}

View File

@ -56,6 +56,7 @@ static const GtkActionEntry actionsPlain[] = {
{ "OptionsMenu", NULL, "_Options", NULL, NULL, NULL },
{ "ViewOptions", GTK_STOCK_PREFERENCES, "View _Options...", NULL, NULL, G_CALLBACK(actionViewOptions) },
{ "ShowObjectsMenu", NULL, "Show Objects", NULL, NULL, NULL },
{ "ShowGridsMenu", NULL, "Show Grids", NULL, NULL, NULL },
{ "ShowLabelsMenu", NULL, "Show Labels", NULL, NULL, NULL },
{ "ShowOrbitsMenu", NULL, "Show Orbits", 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 },
{ "RenderAtmospheres", NULL, "Atmospheres", "<control>A", NULL, G_CALLBACK(actionRenderAtmospheres), 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 },
{ "RenderCometTails", NULL, "Comet Tails", "<control>T", NULL, G_CALLBACK(actionRenderCometTails), 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 },
{ "RenderGalaxies", NULL, "Galaxies", "U", NULL, G_CALLBACK(actionRenderGalaxies), 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 },
{ "RenderNebulae", NULL, "Nebulae", "asciicircum", NULL, G_CALLBACK(actionRenderNebulae), FALSE },
{ "RenderNightLights", NULL, "Night Side Lights", "<control>L", NULL, G_CALLBACK(actionRenderNightLights), FALSE },