本文整理汇总了C++中SharedKObject::Set方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedKObject::Set方法的具体用法?C++ SharedKObject::Set怎么用?C++ SharedKObject::Set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedKObject
的用法示例。
在下文中一共展示了SharedKObject::Set方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PageLoaded
void UserWindow::PageLoaded(SharedKObject global_bound_object, std::string &url)
{
SharedKObject event = new StaticBoundObject();
event->Set("scope", Value::NewObject(global_bound_object));
event->Set("url", Value::NewString(url.c_str()));
this->FireEvent(LOAD, event);
}
示例2: GetUsers
void IRCClientBinding::GetUsers(const ValueList& args, SharedValue result)
{
const char *channel = args.at(0)->ToString();
SharedKList list = new StaticBoundList();
channel_user* cu = irc.get_users();
while(cu)
{
if (!strcmp(cu->channel,(char*)channel) && cu->nick && strlen(cu->nick)>0)
{
SharedKObject entry = new StaticBoundObject();
entry->Set("name",Value::NewString(cu->nick));
entry->Set("operator",Value::NewBool(cu->flags & IRC_USER_OP));
entry->Set("voice",Value::NewBool(cu->flags & IRC_USER_VOICE));
list->Append(Value::NewObject(entry));
}
cu = cu->next;
}
result->SetList(list);
}
示例3: RubyKObjectMethodMissing
// A :method_missing method for finding KObject properties in Ruby
static VALUE RubyKObjectMethodMissing(int argc, VALUE *argv, VALUE self)
{
SharedValue* dval = NULL;
Data_Get_Struct(self, SharedValue, dval);
SharedKObject object = (*dval)->ToObject();
// TODO: We should raise an exception instead
if (object.isNull())
return Qnil;
// This is the same error that ruby throws
if (argc == 0 || !SYMBOL_P(argv[0]))
{
rb_raise(rb_eArgError, "no id given");
}
// We need to determine the method that was invoked:
// store the method name and arguments in separate variables
VALUE r_name, args;
rb_scan_args(argc, argv, "1*", &r_name, &args);
const char* name = rb_id2name(SYM2ID(r_name));
// Check if this is an assignment
SharedValue value = object->Get(name);
if (name[strlen(name) - 1] == '=' && argc > 1)
{
char* mod_name = strdup(name);
mod_name[strlen(mod_name) - 1] = '\0';
value = RubyUtils::ToKrollValue(argv[1]);
object->Set(mod_name, value);
free(mod_name);
return argv[1];
}
else if (value->IsUndefined()) // raise a method missing error
{
VALUE selfString = rb_obj_as_string(self);
rb_raise(rb_eNoMethodError, "undefined method `%s' for %s",
name, RubyUtils::ToString(selfString));
}
else if (value->IsMethod()) // actually call a method
{
return RubyUtils::GenericKMethodCall(value->ToMethod(), args);
}
else // Plain old access
{
return RubyUtils::ToRubyValue(value);
}
}
示例4:
UIBinding::UIBinding(Host *host) :
AccessorBoundObject("UI"),
host(host)
{
instance = this;
// @tiproperty[Number, UI.CENTERED, since=1.0] The CENTERED event constant
this->Set("CENTERED", Value::NewInt(UIBinding::CENTERED));
/**
* @tiapi(method=True,name=UI.createMenu,version=1.0)
* @tiapi Create a new menu
* @tiresult[UI.Menu] A new menu
*/
this->SetMethod("createMenu", &UIBinding::_CreateMenu);
/**
* @tiapi(method=True,name=UI.createMenuItem,version=1.0)
* @tiapi Create a new menu item.
* @tiarg[String, label] The label for this menu item
* @tiarg[Function, eventListener, optional=True] An event listener for this menu item
* @tiarg[String, iconURL, optional=True] A URL to an icon to use for this menu item
* @tiresult[UI.MenuItem] A new menu item
*/
this->SetMethod("createMenuItem", &UIBinding::_CreateMenuItem);
/**
* @tiapi(method=True,name=UI.createCheckMenuItem,version=1.0)
* @tiapi Create a new CheckMenuItem object.
* @tiarg[String, label] The label for this menu item
* @tiarg[Function, eventListener, optional=True] An event listener for this menu item
* @tiresult[UI.CheckMenuItem] The new CheckMenuItem object
*/
this->SetMethod("createCheckMenuItem", &UIBinding::_CreateCheckMenuItem);
/**
* @tiapi(method=True,name=UI.createSeperatorMenuItem,version=1.0)
* @tiapi Create a new separator menu item.
* @tiresult[UI.SeparatorMenuItem] A new separator menu item
*/
this->SetMethod("createSeparatorMenuItem", &UIBinding::_CreateSeparatorMenuItem);
/**
* @tiapi(method=True,name=UI.setMenu,version=0.2) Sets a menu for the application
* @tiarg[UI.Menu|null, menu] A Menu object to use as the menu or null to unset the menu
*/
this->SetMethod("setMenu", &UIBinding::_SetMenu);
/**
* @tiapi(method=True,name=UI.getMenu,version=0.2) Returns the application's main MenuItem
* @tiresult[UI.Menu|null] The application's main menu
*/
this->SetMethod("getMenu", &UIBinding::_GetMenu);
/**
* @tiapi(method=True,name=UI.setContextMenu,version=0.2) Sets the application's context menu
* @tiarg(for=UI.setContextMenu,type=UI.Menu|null,name=menu) a MenuItem object or null to unset
*/
this->SetMethod("setContextMenu", &UIBinding::_SetContextMenu);
/**
* @tiapi(method=True,name=UI.getContextMenu,version=0.2) Returns the application context menu
* @tiresult(for=UI.getContextMenu,type=UI.Menu|null) the application's context MenuItem object
*/
this->SetMethod("getContextMenu", &UIBinding::_GetContextMenu);
/**
* @tiapi(method=True,name=UI.setIcon,version=0.2) Sets the application's icon
* @tiarg(for=UI.setIcon,type=String,name=menu) path to the icon
*/
this->SetMethod("setIcon", &UIBinding::_SetIcon);
/**
* @tiapi(method=True,name=UI.addTray,version=0.2,deprecated=True)
* @tiapi Create and add a tray icon
* @tiarg[String, iconURL] URL to the icon to use for this tray item
* @tiarg[Function, eventListener, optional=True] Event listener to add for this item
* @tiresult(for=UI.addTray,type=UI.Tray|null) the application's Tray icon object
*/
this->SetMethod("addTray", &UIBinding::_AddTray);
/**
* @tiapi(method=True,name=UI.clearTray,version=0.2)
* @tiapi Empty the tray of all this application's tray items
*/
this->SetMethod("clearTray", &UIBinding::_ClearTray);
/**
* @tiapi(method=True,name=UI.setDockIcon,version=0.2) Sets the dock icon
* @tiarg(for=UI.setDockIcon,type=String,name=icon) path to the icon
*/
this->SetMethod("setDockIcon", &UIBinding::_SetDockIcon);
/**
* @tiapi(method=True,name=UI.setDockMenu,version=0.2) Sets the dock menu
* @tiarg(for=UI.setDockMenu,type=UI.Menu,name=menu) The new menu for the dock
*/
this->SetMethod("setDockMenu", &UIBinding::_SetDockMenu);
/**
//.........这里部分代码省略.........
示例5: Open
void GtkUserWindow::Open()
{
if (this->gtk_window == NULL)
{
WebKitWebView* web_view = WEBKIT_WEB_VIEW (webkit_web_view_new ());
g_signal_connect(
G_OBJECT(web_view), "window-object-cleared",
G_CALLBACK(window_object_cleared_cb), this);
g_signal_connect(
G_OBJECT(web_view), "navigation-requested",
G_CALLBACK(navigation_requested_cb), this);
g_signal_connect(
G_OBJECT(web_view), "new-window-navigation-requested",
G_CALLBACK(new_window_navigation_requested_cb), this);
g_signal_connect(
G_OBJECT(web_view), "populate-popup",
G_CALLBACK(populate_popup_cb), this);
g_signal_connect(
G_OBJECT(web_view), "load-finished",
G_CALLBACK(load_finished_cb), this);
// Tell Titanium what Webkit is using for a user-agent
SharedKObject global = host->GetGlobalObject();
if (global->Get("userAgent")->IsUndefined())
{
gchar* user_agent = webkit_web_view_get_user_agent(G_OBJECT(web_view));
global->Set("userAgent", Value::NewString(user_agent));
g_free(user_agent);
}
WebKitWebSettings* settings = webkit_web_settings_new();
g_object_set(G_OBJECT(settings), "enable-developer-extras", TRUE, NULL);
webkit_web_view_set_settings(WEBKIT_WEB_VIEW(web_view), settings);
GtkWidget* view_container = NULL;
if (this->IsUsingScrollbars())
{
/* web view scroller */
GtkWidget* scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy(
GTK_SCROLLED_WINDOW(scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(
GTK_CONTAINER (scrolled_window), GTK_WIDGET (web_view));
view_container = scrolled_window;
}
else // No scrollin' fer ya.
{
view_container = GTK_WIDGET(web_view);
}
/* main window vbox */
this->vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX (vbox),
GTK_WIDGET(view_container),
TRUE, TRUE, 0);
/* main window */
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name(window, this->config->GetTitle().c_str());
gtk_window_set_title(GTK_WINDOW(window), this->config->GetTitle().c_str());
this->destroy_cb_id = g_signal_connect(
G_OBJECT(window), "destroy", G_CALLBACK(destroy_cb), this);
g_signal_connect(G_OBJECT(window), "event",
G_CALLBACK(event_cb), this);
gtk_container_add(GTK_CONTAINER (window), vbox);
webkit_web_view_register_url_scheme_as_local("app");
webkit_web_view_register_url_scheme_as_local("ti");
this->gtk_window = GTK_WINDOW(window);
this->web_view = web_view;
//this->SetupTransparency();
gtk_widget_realize(window);
this->SetupDecorations();
this->SetupSize();
this->SetupSizeLimits();
this->SetupPosition();
this->SetupMenu();
this->SetupIcon();
this->SetTopMost(config->IsTopMost());
this->SetCloseable(config->IsCloseable());
gtk_widget_grab_focus(GTK_WIDGET (web_view));
webkit_web_view_open(web_view, this->config->GetURL().c_str());
if (this->IsVisible())
{
gtk_widget_show_all(window);
}
if (this->config->IsFullScreen())
{
gtk_window_fullscreen(this->gtk_window);
}
//.........这里部分代码省略.........
示例6: RegisterJSContext
void UserWindow::RegisterJSContext(JSGlobalContextRef context)
{
JSObjectRef global_object = JSContextGetGlobalObject(context);
KJSUtil::RegisterGlobalContext(global_object, context);
KJSUtil::ProtectGlobalContext(context);
// Produce a delegating object to represent the top-level
// Titanium object. When a property isn't found in this object
// it will look for it in global_tibo.
SharedKObject global_tibo = this->host->GetGlobalObject();
KObject* ti_object = new DelegateStaticBoundObject(global_tibo);
SharedKObject shared_ti_obj = SharedKObject(ti_object);
SharedValue ui_api_value = ti_object->Get("UI");
if (ui_api_value->IsObject())
{
// Create a delegate object for the UI API.
SharedKObject ui_api = ui_api_value->ToObject();
KObject* delegate_ui_api = new DelegateStaticBoundObject(ui_api);
// Place currentWindow in the delegate.
SharedValue user_window_val = Value::NewObject(this->GetSharedPtr());
delegate_ui_api->Set("currentWindow", user_window_val);
delegate_ui_api->Set("getCurrentWindow", this->Get("getCurrentWindow"));
// Place currentWindow.createWindow in the delegate.
SharedValue create_window_value = this->Get("createWindow");
delegate_ui_api->Set("createWindow", create_window_value);
// Place currentWindow.openFiles in the delegate.
delegate_ui_api->Set("openFileChooserDialog", this->Get("openFileChooserDialog"));
delegate_ui_api->Set("openFolderChooserDialog", this->Get("openFolderChooserDialog"));
delegate_ui_api->Set("openSaveAsDialog", this->Get("openSaveAsDialog"));
ti_object->Set("UI", Value::NewObject(delegate_ui_api));
}
else
{
std::cerr << "Could not find UI API point!" << std::endl;
}
// Get the global object into a KKJSObject
SharedKObject frame_global = new KKJSObject(context, global_object);
// Copy the document and window properties to the Titanium object
SharedValue doc_value = frame_global->Get("document");
ti_object->Set("document", doc_value);
SharedValue window_value = frame_global->Get("window");
ti_object->Set("window", window_value);
// Place the Titanium object into the window's global object
SharedValue ti_object_value = Value::NewObject(shared_ti_obj);
frame_global->Set(GLOBAL_NS_VARNAME, ti_object_value);
// bind the window into currentWindow so you can call things like
// Titanium.UI.currentWindow.getParent().window to get the parents
// window and global variable scope
this->Set("window", window_value);
SharedKObject event = new StaticBoundObject();
event->Set("scope", Value::NewObject(frame_global));
this->FireEvent(INIT, event);
}
示例7: FireEvent
void UserWindow::FireEvent(UserWindowEvent event_type, SharedKObject event)
{
std::string name;
switch (event_type)
{
case FOCUSED:
{
name = "focused";
break;
}
case UNFOCUSED:
{
name = "unfocused";
break;
}
case OPEN:
{
name = "open";
break;
}
case OPENED:
{
name = "opened";
break;
}
case CLOSE:
{
name = "close";
break;
}
case CLOSED:
{
name = "closed";
break;
}
case HIDDEN:
{
name = "hidden";
break;
}
case SHOWN:
{
name = "shown";
break;
}
case FULLSCREENED:
{
name = "fullscreened";
break;
}
case UNFULLSCREENED:
{
name = "unfullscreened";
break;
}
case MAXIMIZED:
{
name = "maximized";
break;
}
case MINIMIZED:
{
name = "minimized";
break;
}
case RESIZED:
{
name = "resized";
break;
}
case MOVED:
{
name = "moved";
break;
}
case INIT:
{
name = "page.init";
break;
}
case LOAD:
{
name = "page.load";
break;
}
case CREATE:
{
name = "create";
break;
}
}
std::string en = std::string("ti.UI.window.") + name;
if (event.isNull())
{
event = new StaticBoundObject();
}
event->Set("window", Value::NewObject(this->shared_this));
this->api->Call(en.c_str(), Value::NewObject(event));
//.........这里部分代码省略.........
示例8: host
AppBinding::AppBinding(Host *host, SharedKObject global) : host(host), global(global)
{
/**
* @tiapi(method=True,immutable=True,name=App.getID,since=0.2) Returns the application id
* @tiresult(for=App.getID,type=string) returns the id
*/
this->SetMethod("getID", &AppBinding::GetID);
/**
* @tiapi(method=True,immutable=True,name=App.getName,since=0.2) Returns the application name
* @tiresult(for=App.getName,type=string) returns the name
*/
this->SetMethod("getName", &AppBinding::GetName);
/**
* @tiapi(method=True,immutable=True,name=App.getVersion,since=0.2) Returns the application version
* @tiresult(for=App.getVersion,type=string) returns the version
*/
this->SetMethod("getVersion", &AppBinding::GetVersion);
/**
* @tiapi(method=True,immutable=True,name=App.getPublisher,since=0.4) Returns the application publisher
* @tiresult(for=App.getPublisher,type=string) returns the publisher
*/
this->SetMethod("getPublisher", &AppBinding::GetPublisher);
/**
* @tiapi(method=True,immutable=True,name=App.getURL,since=0.4) Returns the application url
* @tiresult(for=App.getURL,type=string) returns the url for the app
*/
this->SetMethod("getURL", &AppBinding::GetURL);
/**
* @tiapi(method=True,immutable=True,name=App.getDescription,since=0.4) Returns the application description
* @tiresult(for=App.getDescription,type=string) returns the description for the app
*/
this->SetMethod("getDescription", &AppBinding::GetDescription);
/**
* @tiapi(method=True,immutable=True,name=App.getCopyright,since=0.4) Returns the application copyright information
* @tiresult(for=App.getCopyright,type=string) returns the copyright for the app
*/
this->SetMethod("getCopyright", &AppBinding::GetCopyright);
/**
* @tiapi(method=True,immutable=True,name=App.getGUID,since=0.2) Returns the application globally unique id
* @tiresult(for=App.getGUID,type=string) returns the unique id
*/
this->SetMethod("getGUID", &AppBinding::GetGUID);
/**
* @tiapi(method=True,immutable=True,name=App.getStreamURL,since=0.4) Returns the application stream URL for the update channel
* @tiresult(for=App.getStreamURL,type=string) returns the stream URL
*/
this->SetMethod("getStreamURL", &AppBinding::GetStreamURL);
/**
* @tiapi(method=True,immutable=True,name=App.appURLToPath,since=0.2) Returns the full path equivalent of an app: protocol path
* @tiresult(for=App.appURLToPath,type=string) returns the path
*/
this->SetMethod("appURLToPath", &AppBinding::AppURLToPath);
/**
* @tiapi(property=True,immutable=True,type=string,name=App.path,since=0.2) Returns the full path to the application
*/
this->Set("path",Value::NewString(host->GetCommandLineArg(0)));
/**
* @tiapi(property=True,immutable=True,type=string,name=App.home,since=0.4) Returns the full path to the application home directory
*/
this->Set("home",Value::NewString(host->GetApplicationHomePath()));
/**
* @tiapi(property=True,immutable=True,type=string,name=App.version,since=0.2) The Titanium product version
*/
SharedValue version = Value::NewString(STRING(PRODUCT_VERSION));
global->Set("version", version);
/**
* @tiapi(property=True,immutable=True,type=string,name=App.platform,since=0.2) The Titanium platform
*/
SharedValue platform = Value::NewString(host->GetPlatform());
global->Set("platform",platform);
// skip the first argument which is the filepath to the
// executable
SharedKList argList = new StaticBoundList();
for (int i = 1; i < Host::GetInstance()->GetCommandLineArgCount(); i++) {
argList->Append(Value::NewString(Host::GetInstance()->GetCommandLineArg(i)));
}
SharedValue arguments = Value::NewList(argList);
/**
* @tiapi(property=True,immutable=True,type=list,name=App.arguments,since=0.2) The command line arguments
*/
Set("arguments", arguments);
/**
* @tiapi(method=True,immutable=True,name=App.exit,since=0.2) Exits the application
*/
this->SetMethod("exit",&AppBinding::Exit);
/**
* @tiapi(method=True,name=App.loadProperties,since=0.2) Loads a properties list from a file path
* @tiarg(for=App.loadProperties,type=string,name=path) path to properties file
* @tiresult(for=App.loadProperties,type=list) returns the properties as a list
*/
//.........这里部分代码省略.........