libyui
|
00001 /************************************************************************** 00002 Copyright (C) 2000 - 2010 Novell, Inc. 00003 All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License along 00016 with this program; if not, write to the Free Software Foundation, Inc., 00017 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00018 00019 **************************************************************************/ 00020 00021 00022 /*---------------------------------------------------------------------\ 00023 | | 00024 | __ __ ____ _____ ____ | 00025 | \ \ / /_ _/ ___|_ _|___ \ | 00026 | \ V / _` \___ \ | | __) | | 00027 | | | (_| |___) || | / __/ | 00028 | |_|\__,_|____/ |_| |_____| | 00029 | | 00030 | core system | 00031 | (C) SuSE GmbH | 00032 \----------------------------------------------------------------------/ 00033 00034 File: YTable.h 00035 00036 Author: Stefan Hundhammer <sh@suse.de> 00037 00038 /-*/ 00039 00040 #ifndef YTable_h 00041 #define YTable_h 00042 00043 #include "YTypes.h" 00044 #include "YSelectionWidget.h" 00045 #include "YTableItem.h" 00046 #include "YTableHeader.h" 00047 00048 class YTablePrivate; 00049 00050 using std::string; 00051 00052 00071 class YTable : public YSelectionWidget 00072 { 00073 protected: 00086 YTable( YWidget * parent, YTableHeader * header, bool multiSelection ); 00087 00088 public: 00089 00093 virtual ~YTable(); 00094 00099 virtual const char * widgetClass() const { return "YTable"; } 00100 00104 int columns() const; 00105 00110 bool hasColumn( int column ) const; 00111 00115 string header( int column ) const; 00116 00120 YAlignmentType alignment( int column ) const; 00121 00132 bool immediateMode() const; 00133 00137 void setImmediateMode( bool immediateMode = true ); 00138 00144 bool keepSorting() const; 00145 00154 virtual void setKeepSorting( bool keepSorting ); 00155 00160 bool hasMultiSelection() const; 00161 00174 virtual void cellChanged( const YTableCell * cell ) = 0; 00175 00186 virtual bool setProperty( const string & propertyName, 00187 const YPropertyValue & val ); 00188 00195 virtual YPropertyValue getProperty( const string & propertyName ); 00196 00203 virtual const YPropertySet & propertySet(); 00204 00205 00210 const char * userInputProperty() { return YUIProperty_CurrentItem; } 00211 00212 00213 protected: 00214 00222 void setTableHeader( YTableHeader * newHeader ); 00223 00224 private: 00225 00226 ImplPtr<YTablePrivate> priv; 00227 }; 00228 00229 00230 #endif // YTable_h