summaryrefslogtreecommitdiffstats
path: root/kstars/kstars/kspopupmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'kstars/kstars/kspopupmenu.h')
-rw-r--r--kstars/kstars/kspopupmenu.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/kstars/kstars/kspopupmenu.h b/kstars/kstars/kspopupmenu.h
new file mode 100644
index 00000000..a91d8307
--- /dev/null
+++ b/kstars/kstars/kspopupmenu.h
@@ -0,0 +1,158 @@
+/***************************************************************************
+ kspopupmenu.h - K Desktop Planetarium
+ -------------------
+ begin : Sat Feb 27 2003
+ copyright : (C) 2001 by Jason Harris
+ email : jharris@30doradus.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#ifndef KSPOPUPMENU_H
+#define KSPOPUPMENU_H
+
+#include <kpopupmenu.h>
+
+/**@class KSPopupMenu
+ *The KStars Popup Menu. The menu is sensitive to the
+ *object type of the object which was clicked to invoke the menu.
+ *Items in the menu include name and type data; rise/transit/set times;
+ *actions such as Center, Details, Telescope actions, and Label;
+ *and Image and Information URL links.
+ *@author Jason Harris
+ *@version 1.0
+ */
+
+class KStars;
+class StarObject;
+class SkyObject;
+class QLabel;
+
+class KSPopupMenu : public KPopupMenu
+{
+Q_OBJECT
+public:
+/**Default constructor*/
+ KSPopupMenu( QWidget *parent = 0, const char *name = 0 );
+
+/**Destructor (empty)*/
+ ~KSPopupMenu();
+
+/**Initialize the popup menus. Adds name and type labels, and possibly
+ *Rise/Set/Transit labels, Center/Track item, and Show Details item.
+ *@short initialize the right-click popup menu
+ *@param obj pointer to the skyobject which the menu describes
+ *@param name1 The primary object name
+ *@param name2 The (optional) secondary object name
+ *@param type a string identifying the object type
+ *@param showRiseSet if true, the Rise/Set/Transit labels are added
+ *@param showCenterTrack if true, the Center/Track item is added
+ *@param showDetails if true, the Show-Details item is added
+ *@param showTrail if true, the add/remove planet trail item is added
+ *@param addTrail if true, the add/remove planet trail item reads "Add Trail"
+ *if false, it reads "Remove Trail".
+ *@param showAngularDistance if true, the Angular Distance item is added.
+ *@param showObsList if true, the Add to List/Remove from List item is added.
+ */
+ void initPopupMenu( SkyObject *obj, QString name1, QString name2, QString type,
+ bool showRiseSet=true, bool showCenterTrack=true,
+ bool showDetails=true, bool showTrail=false,
+ bool addTrail=false, bool showAngularDistance=true,
+ bool showObsList=true );
+
+/**Add an item to the popup menu for each of the URL links associated with
+ *this object. URL links appear in two categories: images and information pages.
+ *For some objects, a link to Digitized Sky Survey images will automatically be added
+ *in addition to the object's normal image links. Also, for some objects, an
+ *"Add link..." item will be included, which allows the user to add their own cutsom
+ *URLs for this object.
+ *@param obj pointer to the skyobject which the menu describes
+ *@param showDSS if TRUE, include DSS Image links
+ *@param allowCustom if TRUE, include the "Add Link..." item
+ */
+ void addLinksToMenu( SkyObject *obj, bool showDSS=true, bool allowCustom=true );
+
+/**@short Create a popup menu for a star.
+ *
+ *Stars get the following labels: a primary name and/or a genetive name,
+ *a spectral type, an object type ("star"), and rise/transit/set times.
+ *Stars get a "Center & Track" item, an Angular Distance item, and a
+ *"Detailed Info" item. Named stars get an "Attach Label" item and an
+ *"Add Link..." item, and may have image/info links; all stars get DSS
+ *image links. Stars do not get an "Add Trail" item.
+ *@param star pointer to the star which the menu describes
+ */
+ void createStarMenu( StarObject *star );
+
+/**@short Create a popup menu for a deep-sky object.
+ *
+ *DSOs get the following labels:
+ *a common name and/or a catalog name, an object type, and rise/transit/set
+ *times. DSOs get a "Center & Track" item, an Angular Distance item, an
+ *"Attach Label" item, and a "Detailed Info" item.
+ *They may have image/info links, and also get the DSS Image links and the
+ *"Add Link..." item. They do not get an "Add Trail" item.
+ *@param obj pointer to the object which the menu describes
+ */
+ void createDeepSkyObjectMenu( SkyObject *obj );
+
+/**@short Create a popup menu for a custom-catalog object.
+ *
+ *For now, this behaves essentially like the createDeepSkyObjectMenu()
+ *function, except that adding custom links is (temporarily?) disabled.
+ *@param obj pointer to the custom catalog object which the menu describes
+ */
+ void createCustomObjectMenu( SkyObject *obj );
+
+/**@short Create a popup menu for a solar system body.
+ *
+ *Solar System bodies get a name label, a type label ("solar system"),
+ *and rise/set/transit time labels. They also get Center&Track,
+ *Angular Distance, Detailed Info, Attach Label, and Add Trail items.
+ *They can have image/info links, and also get the "Add Link..." item.
+ *@note despite the name "createPlanetMenu", this function is used for
+ *comets and asteroids as well.
+ *@param p the solar system object which the menu describes.
+ */
+ void createPlanetMenu( SkyObject *p );
+
+/**@short Create a popup menu for empty sky.
+ *
+ *The popup menu when right-clicking on nothing is still useful.
+ *Instead of a name label, it shows "Empty Sky". The rise/set/transit
+ *times of the clicked point on the sky are also shown. You also get
+ *the Center & Track and Angular Distance items, and the DSS image links.
+ *@param nullObj pointer to dummy SkyObject, just to hold the clicked
+ *coordinates for passing to initPopupMenu().
+ */
+ void createEmptyMenu( SkyObject *nullObj=0 );
+
+/**Set the rise/transit/set time labels for the object. Compute these times
+ *for the object for the current date and location. If the object is
+ *circumpolar or never rises, the rise and set labels will indicate this
+ *(but the transit time should always be valid).
+ *@param obj the skyobject whose r/t/s times are to be displayed.
+ */
+ void setRiseSetLabels( SkyObject *obj );
+
+/**Add a submenu for INDI controls (Slew, Track, Sync, etc).
+ *@return true if a valid INDI menu was added.
+ */
+ bool addINDI(void);
+
+private:
+ KStars *ksw;
+ QLabel *pmTitle, *pmTitle2, *pmType, *pmConstellation;
+ QLabel *pmRiseTime, *pmSetTime, *pmTransitTime;
+
+};
+
+#endif