Back to index

lightning-sunbird  0.9+nobinonly
EmbedPrompter.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 /* vim:expandtab:shiftwidth=4:tabstop=4: */
00003 /* ***** BEGIN LICENSE BLOCK *****
00004  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00005  *
00006  * The contents of this file are subject to the Mozilla Public License Version
00007  * 1.1 (the "License"); you may not use this file except in compliance with
00008  * the License. You may obtain a copy of the License at
00009  * http://www.mozilla.org/MPL/
00010  *
00011  * Software distributed under the License is distributed on an "AS IS" basis,
00012  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00013  * for the specific language governing rights and limitations under the
00014  * License.
00015  *
00016  * The Original Code is mozilla.org code.
00017  *
00018  * The Initial Developer of the Original Code is
00019  * Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard.  All Rights Reserved.
00020  * Portions created by the Initial Developer are Copyright (C) 2001
00021  * the Initial Developer. All Rights Reserved.
00022  *
00023  * Contributor(s):
00024  *   Christopher Blizzard <blizzard@mozilla.org>
00025  *   Brian Ryner <bryner@brianryner.com>
00026  *
00027  * Alternatively, the contents of this file may be used under the terms of
00028  * either the GNU General Public License Version 2 or later (the "GPL"), or
00029  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00030  * in which case the provisions of the GPL or the LGPL are applicable instead
00031  * of those above. If you wish to allow use of your version of this file only
00032  * under the terms of either the GPL or the LGPL, and not to allow others to
00033  * use your version of this file under the terms of the MPL, indicate your
00034  * decision by deleting the provisions above and replace them with the notice
00035  * and other provisions required by the GPL or the LGPL. If you do not delete
00036  * the provisions above, a recipient may use your version of this file under
00037  * the terms of any one of the MPL, the GPL or the LGPL.
00038  *
00039  * ***** END LICENSE BLOCK ***** */
00040 
00041 #include <nsString.h>
00042 #include <gtk/gtk.h>
00043 
00044 #define EMBED_MAX_BUTTONS 3
00045 
00046 class EmbedPrompter {
00047 
00048 public:
00049 
00050     EmbedPrompter();
00051     ~EmbedPrompter();
00052 
00053     enum PromptType {
00054         TYPE_ALERT,
00055         TYPE_ALERT_CHECK,
00056         TYPE_CONFIRM,
00057         TYPE_CONFIRM_CHECK,
00058         TYPE_PROMPT,
00059         TYPE_PROMPT_USER_PASS,
00060         TYPE_PROMPT_PASS,
00061         TYPE_SELECT,
00062         TYPE_UNIVERSAL
00063     };
00064 
00065     nsresult Create(PromptType aType, GtkWindow* aParentWindow);
00066     void     SetTitle(const PRUnichar *aTitle);
00067     void     SetTextValue (const PRUnichar *aTextValue);
00068     void     SetCheckMessage(const PRUnichar *aCheckMessage);
00069     void     SetCheckValue(const PRBool aValue);
00070     void     SetMessageText(const PRUnichar *aMessageText);
00071     void     SetUser(const PRUnichar *aUser);
00072     void     SetPassword(const PRUnichar *aPass);
00073     void     SetButtons(const PRUnichar* aButton0Label,
00074                         const PRUnichar* aButton1Label,
00075                         const PRUnichar* aButton2Label);
00076     void     SetItems(const PRUnichar **aItemArray, PRUint32 aCount);
00077 
00078     void     GetCheckValue(PRBool *aValue);
00079     void     GetConfirmValue(PRBool *aConfirmValue);
00080     void     GetTextValue(PRUnichar **aTextValue);
00081     void     GetUser(PRUnichar **aUser);
00082     void     GetPassword(PRUnichar **aPass);
00083     void     GetButtonPressed(PRInt32 *aButton);
00084     void     GetSelectedItem(PRInt32 *aIndex);
00085 
00086     void     Run(void);
00087 
00088 private:
00089 
00090     void     SaveDialogValues();
00091 
00092     nsCString    mTitle;
00093     nsCString    mMessageText;
00094     nsCString    mTextValue;
00095     nsCString    mCheckMessage;
00096     PRBool       mCheckValue;
00097     nsCString    mUser;
00098     nsCString    mPass;
00099     nsCString    mButtonLabels[EMBED_MAX_BUTTONS];
00100     nsCString   *mItemList;
00101     PRUint32     mItemCount;
00102 
00103     PRInt32      mButtonPressed;
00104     PRBool       mConfirmResult;
00105     PRInt32      mSelectedItem;
00106 
00107     GtkWidget   *mWindow;
00108     GtkWidget   *mUserField;
00109     GtkWidget   *mPassField;
00110     GtkWidget   *mTextField;
00111     GtkWidget   *mOptionMenu;
00112     GtkWidget   *mCheckBox;
00113 };