* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GTK_IM_CONTEXT_MULTIPRESS_H__
#define GTK_IS_IM_CONTEXT_MULTIPRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IM_CONTEXT_MULTIPRESS))
#define GTK_IM_CONTEXT_MULTIPRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IM_CONTEXT_MULTIPRESS, GtkImContextMultipressClass))
-
-typedef struct _KeySequence KeySequence;
-
typedef struct _GtkImContextMultipress GtkImContextMultipress;
-/** This input method allows multi-press character input, like that found on mobile phones.
+/* This input method allows multi-press character input, like that found on
+ * mobile phones.
*
- * This is based on GtkImContextSimple, which allows "compose" based on sequences of characters.
- * But instead the character sequences are defined by lists of characters for a key,
- * so that repeated pressing of the same key can cycle through the possible output characters,
- * with automatic choosing of the character after a time delay.
- */
+ * This is based on GtkImContextSimple, which allows "compose" based on
+ * sequences of characters. But instead the character sequences are defined
+ * by lists of characters for a key, so that repeated pressing of the same key
+ * can cycle through the possible output characters, with automatic choosing
+ * of the character after a time delay.
+ */
struct _GtkImContextMultipress
{
+ /*< private >*/
GtkIMContext parent;
- /* Sequence information, loading from the configuration file: */
- KeySequence** key_sequences; /* Built when we read the config file. Not null-terminated. */
- gsize key_sequences_count; /* Number of KeySequence struct instances. */
-
+ /* Sequence information, loaded from the configuration file: */
+ GHashTable* key_sequences;
+ gsize dummy; /* ABI-preserving placeholder */
/* The last character entered so far during a compose.
* If this is NULL then we are not composing yet.
/* The position of the compose in the possible sequence.
* For instance, this is 2 if aa has been pressed to show b (from abc0).
*/
-
guint compose_count;
guint timeout_id;
/* The character(s) that will be used if it the current character(s) is accepted: */
- const gchar* tentative_match;
+ const gchar *tentative_match;
};