|
Packit |
d370c2 |
/*
|
|
Packit |
d370c2 |
* Copyright © 2001 Havoc Pennington
|
|
Packit |
d370c2 |
* Copyright © 2008, 2010 Christian Persch
|
|
Packit |
d370c2 |
*
|
|
Packit |
d370c2 |
* This program is free software: you can redistribute it and/or modify
|
|
Packit |
d370c2 |
* it under the terms of the GNU General Public License as published by
|
|
Packit |
d370c2 |
* the Free Software Foundation, either version 3 of the License, or
|
|
Packit |
d370c2 |
* (at your option) any later version.
|
|
Packit |
d370c2 |
*
|
|
Packit |
d370c2 |
* This program is distributed in the hope that it will be useful,
|
|
Packit |
d370c2 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
d370c2 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit |
d370c2 |
* GNU General Public License for more details.
|
|
Packit |
d370c2 |
*
|
|
Packit |
d370c2 |
* You should have received a copy of the GNU General Public License
|
|
Packit |
d370c2 |
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
d370c2 |
*/
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
#ifndef TERMINAL_SCREEN_H
|
|
Packit |
d370c2 |
#define TERMINAL_SCREEN_H
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
#include <glib-object.h>
|
|
Packit |
d370c2 |
#include <gio/gio.h>
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
#include <vte/vte.h>
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
G_BEGIN_DECLS
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
typedef enum {
|
|
Packit |
d370c2 |
FLAVOR_AS_IS,
|
|
Packit |
d370c2 |
FLAVOR_DEFAULT_TO_HTTP,
|
|
Packit |
d370c2 |
FLAVOR_VOIP_CALL,
|
|
Packit |
d370c2 |
FLAVOR_EMAIL,
|
|
Packit |
d370c2 |
FLAVOR_NUMBER,
|
|
Packit |
d370c2 |
} TerminalURLFlavor;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
/* Forward decls */
|
|
Packit |
d370c2 |
typedef struct _TerminalScreenPopupInfo TerminalScreenPopupInfo;
|
|
Packit |
d370c2 |
typedef struct _TerminalWindow TerminalWindow;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
#define TERMINAL_TYPE_SCREEN (terminal_screen_get_type ())
|
|
Packit |
d370c2 |
#define TERMINAL_SCREEN(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), TERMINAL_TYPE_SCREEN, TerminalScreen))
|
|
Packit |
d370c2 |
#define TERMINAL_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TERMINAL_TYPE_SCREEN, TerminalScreenClass))
|
|
Packit |
d370c2 |
#define TERMINAL_IS_SCREEN(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), TERMINAL_TYPE_SCREEN))
|
|
Packit |
d370c2 |
#define TERMINAL_IS_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TERMINAL_TYPE_SCREEN))
|
|
Packit |
d370c2 |
#define TERMINAL_SCREEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TERMINAL_TYPE_SCREEN, TerminalScreenClass))
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
typedef struct _TerminalScreen TerminalScreen;
|
|
Packit |
d370c2 |
typedef struct _TerminalScreenClass TerminalScreenClass;
|
|
Packit |
d370c2 |
typedef struct _TerminalScreenPrivate TerminalScreenPrivate;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
struct _TerminalScreen
|
|
Packit |
d370c2 |
{
|
|
Packit |
d370c2 |
VteTerminal parent_instance;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
TerminalScreenPrivate *priv;
|
|
Packit |
d370c2 |
};
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
struct _TerminalScreenClass
|
|
Packit |
d370c2 |
{
|
|
Packit |
d370c2 |
VteTerminalClass parent_class;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void (* profile_set) (TerminalScreen *screen,
|
|
Packit |
d370c2 |
GSettings *old_profile);
|
|
Packit |
d370c2 |
void (* show_popup_menu) (TerminalScreen *screen,
|
|
Packit |
d370c2 |
TerminalScreenPopupInfo *info);
|
|
Packit |
d370c2 |
gboolean (* match_clicked) (TerminalScreen *screen,
|
|
Packit |
d370c2 |
const char *url,
|
|
Packit |
d370c2 |
int flavor,
|
|
Packit |
d370c2 |
guint state);
|
|
Packit |
d370c2 |
void (* close_screen) (TerminalScreen *screen);
|
|
Packit |
d370c2 |
};
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
GType terminal_screen_get_type (void) G_GNUC_CONST;
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
const char *terminal_screen_get_uuid (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
TerminalScreen *terminal_screen_new (GSettings *profile,
|
|
Packit |
d370c2 |
const char *charset,
|
|
Packit |
d370c2 |
char **override_command,
|
|
Packit |
d370c2 |
const char *title,
|
|
Packit |
d370c2 |
const char *working_dir,
|
|
Packit |
d370c2 |
char **child_env,
|
|
Packit |
d370c2 |
double zoom);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
gboolean terminal_screen_exec (TerminalScreen *screen,
|
|
Packit |
d370c2 |
char **argv,
|
|
Packit |
d370c2 |
char **envv,
|
|
Packit |
d370c2 |
gboolean shell,
|
|
Packit |
d370c2 |
const char *cwd,
|
|
Packit |
d370c2 |
GUnixFDList *fd_list,
|
|
Packit |
d370c2 |
GVariant *fd_array,
|
|
Packit |
d370c2 |
GError **error);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void _terminal_screen_launch_child_on_idle (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void terminal_screen_set_profile (TerminalScreen *screen,
|
|
Packit |
d370c2 |
GSettings *profile);
|
|
Packit |
d370c2 |
GSettings* terminal_screen_get_profile (TerminalScreen *screen);
|
|
Packit |
d370c2 |
GSettings* terminal_screen_ref_profile (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void terminal_screen_set_initial_environment (TerminalScreen *screen,
|
|
Packit |
d370c2 |
char **argv);
|
|
Packit |
d370c2 |
char ** terminal_screen_get_initial_environment (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
const char* terminal_screen_get_title (TerminalScreen *screen);
|
|
Packit |
d370c2 |
const char* terminal_screen_get_icon_title (TerminalScreen *screen);
|
|
Packit |
d370c2 |
gboolean terminal_screen_get_icon_title_set (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
char *terminal_screen_get_current_dir (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void terminal_screen_get_size (TerminalScreen *screen,
|
|
Packit |
d370c2 |
int *width_chars,
|
|
Packit |
d370c2 |
int *height_chars);
|
|
Packit |
d370c2 |
void terminal_screen_get_cell_size (TerminalScreen *screen,
|
|
Packit |
d370c2 |
int *width_chars,
|
|
Packit |
d370c2 |
int *height_chars);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void _terminal_screen_update_scrollbar (TerminalScreen *screen);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void terminal_screen_save_config (TerminalScreen *screen,
|
|
Packit |
d370c2 |
GKeyFile *key_file,
|
|
Packit |
d370c2 |
const char *group);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
gboolean terminal_screen_has_foreground_process (TerminalScreen *screen,
|
|
Packit |
d370c2 |
char **process_name,
|
|
Packit |
d370c2 |
char **cmdline);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
/* Allow scales a bit smaller and a bit larger than the usual pango ranges */
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXX_SMALL (PANGO_SCALE_XX_SMALL/1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXXX_SMALL (TERMINAL_SCALE_XXX_SMALL/1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXXXX_SMALL (TERMINAL_SCALE_XXXX_SMALL/1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXX_LARGE (PANGO_SCALE_XX_LARGE*1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXXX_LARGE (TERMINAL_SCALE_XXX_LARGE*1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_XXXXX_LARGE (TERMINAL_SCALE_XXXX_LARGE*1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_MINIMUM (TERMINAL_SCALE_XXXXX_SMALL/1.2)
|
|
Packit |
d370c2 |
#define TERMINAL_SCALE_MAXIMUM (TERMINAL_SCALE_XXXXX_LARGE*1.2)
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
struct _TerminalScreenPopupInfo {
|
|
Packit |
d370c2 |
int ref_count;
|
|
Packit |
d370c2 |
char *url;
|
|
Packit |
d370c2 |
TerminalURLFlavor url_flavor;
|
|
Packit |
d370c2 |
char *hyperlink;
|
|
Packit |
d370c2 |
char *number_info;
|
|
Packit |
d370c2 |
guint button;
|
|
Packit |
d370c2 |
guint state;
|
|
Packit |
d370c2 |
guint32 timestamp;
|
|
Packit |
d370c2 |
};
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
TerminalScreenPopupInfo *terminal_screen_popup_info_ref (TerminalScreenPopupInfo *info);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
void terminal_screen_popup_info_unref (TerminalScreenPopupInfo *info);
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
G_END_DECLS
|
|
Packit |
d370c2 |
|
|
Packit |
d370c2 |
#endif /* TERMINAL_SCREEN_H */
|