Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libjava / classpath / gnu / java / awt / peer / qt / QtListPeer.java
blob9df250a42d316c17fd1d8d79394eebc9081c55a1
1 /* QtListPeer.java --
2 Copyright (C) 2005 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
38 package gnu.java.awt.peer.qt;
40 import java.awt.Dimension;
41 import java.awt.List;
42 import java.awt.event.ActionEvent;
43 import java.awt.event.ItemEvent;
44 import java.awt.peer.ListPeer;
46 public class QtListPeer extends QtComponentPeer implements ListPeer
48 public QtListPeer( QtToolkit kit, List owner )
50 super( kit, owner );
53 public native void init();
55 protected void setup()
57 super.setup();
58 List o = (List)owner;
59 // Multiple selection
60 setMultipleMode(o.isMultipleMode());
61 // Add initial list items.
62 String[] items = o.getItems();
63 for (int i = 0; i < items.length; i++)
64 add(items[i], i);
66 // Initial selections.
67 int[] selected = o.getSelectedIndexes();
68 for (int i = 0; i < selected.length; i++)
69 select(selected[i]);
71 // If no initial selection, use 0.
72 if(selected.length == 0 && items.length > 0)
73 select( 0 );
76 private boolean ignoreNextSelect = false;
78 /**
79 * Called back when a row is selected. -1 if no row is selected.
81 private void fireChoice( int index )
83 ignoreNextSelect = true;
84 if( index == -1)
85 ((List)owner).deselect( ((List)owner).getSelectedIndex() );
86 else
88 ((List)owner).select( index );
89 ItemEvent e = new ItemEvent((List)owner,
90 ItemEvent.ITEM_STATE_CHANGED,
91 ""+index,
92 ItemEvent.SELECTED);
93 QtToolkit.eventQueue.postEvent(e);
97 /**
98 * Called back when an item is double-clicked.
99 */
100 private void itemDoubleClicked( int index, int modifiers )
102 ActionEvent e = new ActionEvent(owner,
103 ActionEvent.ACTION_PERFORMED,
104 ((List)owner).getItem( index ),
105 System.currentTimeMillis(),
106 modifiers);
107 QtToolkit.eventQueue.postEvent(e);
110 private native void select(int index, boolean selected);
112 // ************ Public methods *********************
114 public native void add(String item, int index);
116 public void addItem(String item, int index)
118 add(item, index);
121 public void clear()
123 removeAll();
127 * Deletes items from the starting index to the ending index (inclusive).
129 public native void delItems(int start_index, int end_index);
131 public void deselect(int index)
133 if( ignoreNextSelect == true )
134 ignoreNextSelect = false;
135 else
136 select(index, false);
139 public native int[] getSelectedIndexes();
141 public native void makeVisible(int index);
143 public Dimension minimumSize(int s)
145 return getMinimumSize(s);
148 public Dimension preferredSize(int s)
150 return getPreferredSize(s);
153 public void removeAll()
155 delItems(0, ((List)owner).getItemCount() - 1);
158 public void select(int index)
160 if( ignoreNextSelect == true )
161 ignoreNextSelect = false;
162 else
163 select(index, true);
167 * Sets multiple-selection mode.
168 * Note there's a bug in multiple selection in Qt 4.0.0, use 4.0.1.
170 public native void setMultipleMode(boolean multi);
172 public void setMultipleSelections(boolean multi)
174 setMultipleMode(multi);
177 public Dimension getPreferredSize(int s)
179 // FIXME
180 return getPreferredSize();
183 public Dimension getMinimumSize(int s)
185 // FIXME
186 return getMinimumSize();