Changeset 28942 in webkit


Ignore:
Timestamp:
Dec 21, 2007 4:36:46 PM (16 years ago)
Author:
alp@webkit.org
Message:

2007-12-21 Christian Dywan <christian@twotoasts.de>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16144
[GTK] Clipboard/ selection handling functions

  • WebView/webkitprivate.h:
  • WebView/webkitwebview.cpp:
  • WebView/webkitwebview.h:
Location:
trunk/WebKit/gtk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/gtk/ChangeLog

    r28878 r28942  
     12007-12-21  Christian Dywan  <christian@twotoasts.de>
     2
     3        Reviewed by Alp Toker.
     4
     5        http://bugs.webkit.org/show_bug.cgi?id=16144
     6        [GTK] Clipboard/ selection handling functions
     7
     8        * WebView/webkitprivate.h:
     9        * WebView/webkitwebview.cpp:
     10        * WebView/webkitwebview.h:
     11
    1122007-12-19  Christian Dywan  <christian@twotoasts.de>
    213
  • trunk/WebKit/gtk/WebView/webkitprivate.h

    r28818 r28942  
    9898    WEBKIT_API void
    9999    webkit_web_frame_print (WebKitWebFrame* frame);
     100
     101    WEBKIT_API gchar*
     102    webkit_web_view_get_selected_text (WebKitWebView* web_view);
    100103}
    101104
  • trunk/WebKit/gtk/WebView/webkitwebview.cpp

    r28878 r28942  
    2727
    2828#include "NotImplemented.h"
     29#include "CString.h"
    2930#include "ChromeClientGtk.h"
    3031#include "ContextMenuClientGtk.h"
     
    10421043
    10431044/**
     1045 * webkit_web_view_cut_clipboard:
     1046 * @web_view: a #WebKitWebView
     1047 *
     1048 * Determines wether or not it is currently possible to cut to the clipboard.
     1049 *
     1050 * Return value: %TRUE if a selection can be cut, %FALSE if not
     1051 */
     1052gboolean webkit_web_view_can_cut_clipboard(WebKitWebView* webView)
     1053{
     1054    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
     1055
     1056    Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
     1057    return frame->editor()->canCut() || frame->editor()->canDHTMLCut();
     1058}
     1059
     1060/**
     1061 * webkit_web_view_copy_clipboard:
     1062 * @web_view: a #WebKitWebView
     1063 *
     1064 * Determines wether or not it is currently possible to copy to the clipboard.
     1065 *
     1066 * Return value: %TRUE if a selection can be copied, %FALSE if not
     1067 */
     1068gboolean webkit_web_view_can_copy_clipboard(WebKitWebView* webView)
     1069{
     1070    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
     1071
     1072    Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
     1073    return frame->editor()->canCopy() || frame->editor()->canDHTMLCopy();
     1074}
     1075
     1076/**
     1077 * webkit_web_view_paste_clipboard:
     1078 * @web_view: a #WebKitWebView
     1079 *
     1080 * Determines wether or not it is currently possible to paste from the clipboard.
     1081 *
     1082 * Return value: %TRUE if a selection can be pasted, %FALSE if not
     1083 */
     1084gboolean webkit_web_view_can_paste_clipboard(WebKitWebView* webView)
     1085{
     1086    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
     1087
     1088    Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
     1089    return frame->editor()->canPaste() || frame->editor()->canDHTMLPaste();
     1090}
     1091
     1092/**
     1093 * webkit_web_view_cut_clipboard:
     1094 * @web_view: a #WebKitWebView
     1095 *
     1096 * Cuts the current selection inside the @web_view to the clipboard.
     1097 */
     1098void webkit_web_view_cut_clipboard(WebKitWebView* webView)
     1099{
     1100    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     1101
     1102    if (webkit_web_view_can_cut_clipboard(webView))
     1103        g_signal_emit(webView, CUT_CLIPBOARD, 0);
     1104}
     1105
     1106/**
     1107 * webkit_web_view_copy_clipboard:
     1108 * @web_view: a #WebKitWebView
     1109 *
     1110 * Copies the current selection inside the @web_view to the clipboard.
     1111 */
     1112void webkit_web_view_copy_clipboard(WebKitWebView* webView)
     1113{
     1114    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     1115
     1116    if (webkit_web_view_can_copy_clipboard(webView))
     1117        g_signal_emit(webView, COPY_CLIPBOARD, 0);
     1118}
     1119
     1120/**
     1121 * webkit_web_view_paste_clipboard:
     1122 * @web_view: a #WebKitWebView
     1123 *
     1124 * Pastes the current contents of the clipboard to the @web_view.
     1125 */
     1126void webkit_web_view_paste_clipboard(WebKitWebView* webView)
     1127{
     1128    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     1129
     1130    if (webkit_web_view_can_paste_clipboard(webView))
     1131        g_signal_emit(webView, PASTE_CLIPBOARD, 0);
     1132}
     1133
     1134/**
     1135 * webkit_web_view_delete_selection:
     1136 * @web_view: a #WebKitWebView
     1137 *
     1138 * Deletes the current selection inside the @web_view.
     1139 */
     1140void webkit_web_view_delete_selection(WebKitWebView* webView)
     1141{
     1142    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     1143
     1144    Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
     1145    frame->editor()->performDelete();
     1146}
     1147
     1148/**
     1149 * webkit_web_view_has_selection:
     1150 * @web_view: a #WebKitWebView
     1151 *
     1152 * Determines wether text was selected.
     1153 *
     1154 * Return value: %TRUE if there is selected text, %FALSE if not
     1155 */
     1156gboolean webkit_web_view_has_selection(WebKitWebView* webView)
     1157{
     1158    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
     1159
     1160    WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
     1161    return webViewData->corePage->selection().isNone() ? TRUE : FALSE;
     1162}
     1163
     1164/**
     1165 * webkit_web_view_get_selected_text:
     1166 * @web_view: a #WebKitWebView
     1167 *
     1168 * Retrieves the selected text if any.
     1169 *
     1170 * Return value: a newly allocated string with the selection or %NULL
     1171 */
     1172gchar* webkit_web_view_get_selected_text(WebKitWebView* webView)
     1173{
     1174    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
     1175
     1176    Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
     1177    return g_strdup(frame->selectedText().utf8().data());
     1178}
     1179
     1180/**
     1181 * webkit_web_view_select_all:
     1182 * @web_view: a #WebKitWebView
     1183 *
     1184 * Attempts to select everything inside the @web_view.
     1185 */
     1186void webkit_web_view_select_all(WebKitWebView* webView)
     1187{
     1188    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     1189
     1190    g_signal_emit(webView, SELECT_ALL, 0);
     1191}
     1192
     1193/**
    10441194 * webkit_web_view_get_editable:
    10451195 * @web_view: a #WebKitWebView
  • trunk/WebKit/gtk/WebView/webkitwebview.h

    r28878 r28942  
    133133
    134134WEBKIT_API gboolean
     135webkit_web_view_can_cut_clipboard (WebKitWebView* web_view);
     136
     137WEBKIT_API gboolean
     138webkit_web_view_can_copy_clipboard (WebKitWebView* web_view);
     139
     140WEBKIT_API gboolean
     141webkit_web_view_can_paste_clipboard (WebKitWebView* web_view);
     142
     143WEBKIT_API void
     144webkit_web_view_cut_clipboard (WebKitWebView* web_view);
     145
     146WEBKIT_API void
     147webkit_web_view_copy_clipboard (WebKitWebView* web_view);
     148
     149WEBKIT_API void
     150webkit_web_view_paste_clipboard (WebKitWebView* web_view);
     151
     152WEBKIT_API void
     153webkit_web_view_delete_selection (WebKitWebView* web_view);
     154
     155WEBKIT_API gboolean
     156webkit_web_view_has_selection (WebKitWebView* web_view);
     157
     158WEBKIT_API void
     159webkit_web_view_select_all (WebKitWebView* web_view);
     160
     161WEBKIT_API gboolean
    135162webkit_web_view_get_editable (WebKitWebView* web_view);
    136163
Note: See TracChangeset for help on using the changeset viewer.