void CSensorImpl::setProperties(const rho::Hashtable<rho::String, rho::String>& propertyMap, rho::apiGenerator::CMethodResult& oResult) { LOG(TRACE) + "Received request to set properties : " + m_sensorId; if (NULL == m_rawSensor) { oResult.setError("No sensor found. Cannot set properties"); } else { for (rho::Hashtable<rho::String, rho::String>::const_iterator propMapItr = propertyMap.begin(); propMapItr != propertyMap.end(); propMapItr++) { if (_stricmp(propMapItr->first.c_str(), "minimumGap") == 0) { int minimumGap = atoi(propMapItr->second.c_str()); if (minimumGap < 200) { minimumGap = 200; } this->m_rawSensor->setMinimumGap(minimumGap); } else { oResult.setError(propMapItr->first + " is readonly or is invalid."); } } } }
void CMegamoduleBase::setProperties( const rho::Hashtable<rho::String, rho::String>& propertyMap, CMethodResult& oResult) { for ( rho::Hashtable<rho::String, rho::String>::const_iterator it = propertyMap.begin(); it != propertyMap.end(); ++it ) { setProperty( it->first, it->second, oResult ); if ( oResult.isError() ) break; } }
void flash( const rho::Hashtable<rho::String, rho::String>& propertyMap, rho::apiGenerator::CMethodResult& oResult) { m_eCurrentState = NOTIFY_STATE_CYCLE; CYCLE_INFO cycleInfo; SI_INIT(&cycleInfo); DWORD dwResult = m_pNotifications->lpfn_Notify_GetCycleInfo(m_iID, &cycleInfo); if (dwResult != E_NTFY_SUCCESS) { LOG(WARNING) + "Unable to flash LED " + m_szName + " due to error " + dwResult; return; } // Set Defaults cycleInfo.ObjectTypeSpecific.LedSpecific.dwOnDuration = NOTIFY_LED_DEFAULT_LED_ON_DURATION; cycleInfo.ObjectTypeSpecific.LedSpecific.dwOffDuration = NOTIFY_LED_DEFAULT_LED_OFF_DURATION; cycleInfo.ObjectTypeSpecific.LedSpecific.dwCount = NOTIFY_LED_DEFAULT_LED_NUMBER_CYCLES; typedef std::map<rho::String, rho::String>::const_iterator it_type; for (it_type iterator = propertyMap.begin(); iterator != propertyMap.end(); iterator++) { DEBUGMSG(TRUE, (L"Setting LED Flash Property %s to value %s\n", convertToStringW(iterator->first).c_str(), convertToStringW(iterator->second).c_str())); if (_stricmp("onDuration", iterator->first.c_str()) == 0) cycleInfo.ObjectTypeSpecific.LedSpecific.dwOnDuration = atoi(iterator->second.c_str()); else if (_stricmp("offDuration", iterator->first.c_str()) == 0) cycleInfo.ObjectTypeSpecific.LedSpecific.dwOffDuration = atoi(iterator->second.c_str()); else if (_stricmp("numberOfCycles", iterator->first.c_str()) == 0) cycleInfo.ObjectTypeSpecific.LedSpecific.dwCount = atoi(iterator->second.c_str()); } // Remember the Cycle information in case we lose focus. memcpy(&mCycleInfoStore, &cycleInfo, sizeof(CYCLE_INFO)); if (m_bAppHasFocus) { DWORD dwResult = m_pNotifications->lpfn_Notify_SetCycleInfo(m_iID, &cycleInfo); if (dwResult == E_NTFY_SUCCESS) dwResult = m_pNotifications->lpfn_Notify_SetState(m_iID, NOTIFY_STATE_CYCLE); if (dwResult != E_NTFY_SUCCESS) LOG(WARNING) + "Unable to flash LED " + m_szName + " due to error " + dwResult; } }
void CMainWindow::createTabbarEx(const rho::Vector<rho::String>& tabbarElements, const rho::Hashtable<rho::String, rho::String>& tabBarProperties, rho::apiGenerator::CMethodResult& oResult) { if (!rho_rhodesapp_check_mode()) return; std::auto_ptr<QColor> background_color (NULL); for ( Hashtable<rho::String, rho::String>::const_iterator it = tabBarProperties.begin(); it != tabBarProperties.end(); ++it ) { const char *name = (it->first).c_str(); const char *value = (it->second).c_str(); if (strcasecmp(name, "backgroundColor") == 0) background_color.reset(new QColor(getColorFromString(value))); } ((QtMainWindow*)qtMainWindow)->tabbarInitialize(); for (int i = 0; i < (int)tabbarElements.size(); ++i) { const char *label = NULL; const char *action = NULL; const char *icon = NULL; const char *reload = NULL; const char *colored_icon = NULL; std::auto_ptr<QColor> selected_color (NULL); const char *disabled = NULL; std::auto_ptr<QColor> web_bkg_color (NULL); const char* use_current_view_for_tab = NULL; CJSONEntry oEntry(tabbarElements[i].c_str()); if ( oEntry.hasName("label") ) label = oEntry.getString("label"); if ( oEntry.hasName("action") ) action = oEntry.getString("action"); if ( oEntry.hasName("icon") ) icon = oEntry.getString("icon"); if ( oEntry.hasName("coloredIcon") ) colored_icon = oEntry.getString("coloredIcon"); if ( oEntry.hasName("reload") ) reload = oEntry.getString("reload"); if ( oEntry.hasName("selectedColor") ) selected_color.reset(new QColor(getColorFromString(oEntry.getString("selectedColor")))); if ( oEntry.hasName("disabled") ) disabled = oEntry.getString("disabled"); if ( oEntry.hasName("useCurrentViewForTab") ) { use_current_view_for_tab = oEntry.getString("useCurrentViewForTab"); if (strcasecmp(use_current_view_for_tab, "true") == 0) { action = "none"; } } if (oEntry.hasName("backgroundColor")) web_bkg_color.reset(new QColor(getColorFromString(oEntry.getString("backgroundColor")))); if (label == NULL) label = ""; if ( label == NULL || action == NULL) { RAWLOG_ERROR("Illegal argument for create_nativebar"); return; } QtMainWindow::QTabBarRuntimeParams tbrp; tbrp["label"] = QString(label); tbrp["action"] = QString(action); tbrp["reload"] = charToBool(reload); tbrp["use_current_view_for_tab"] = charToBool(use_current_view_for_tab); tbrp["background_color"] = background_color.get() != NULL ? background_color->name() : QString(""); tbrp["selected_color"] = selected_color.get() != NULL ? selected_color->name() : QString(""); String strIconPath = icon ? CFilePath::join( RHODESAPP().getAppRootPath(), icon) : String(); ((QtMainWindow*)qtMainWindow)->tabbarAddTab(QString(label), icon ? strIconPath.c_str() : NULL, charToBool(disabled), web_bkg_color.get(), tbrp); } if (oResult.hasCallback()) ((QtMainWindow*)qtMainWindow)->tabbarSetSwitchCallback(oResult); ((QtMainWindow*)qtMainWindow)->tabbarShow(); m_started = true; }
void CMainWindow::createToolbarEx( const rho::Vector<rho::String>& toolbarElements, const rho::Hashtable<rho::String, rho::String>& toolBarProperties) { if (!rho_rhodesapp_check_mode()) return; std::auto_ptr<QColor> m_rgbBackColor (NULL); std::auto_ptr<QColor> m_rgbMaskColor (NULL); int m_nHeight = MIN_TOOLBAR_HEIGHT; for ( Hashtable<rho::String, rho::String>::const_iterator it = toolBarProperties.begin(); it != toolBarProperties.end(); ++it ) { const char *name = (it->first).c_str(); const char *value = (it->second).c_str(); if (strcasecmp(name, "backgroundColor") == 0) m_rgbBackColor.reset(new QColor(getColorFromString(value))); else if (strcasecmp(name, "maskColor") == 0) m_rgbMaskColor.reset(new QColor(getColorFromString(value))); else if (strcasecmp(name, "viewHeight") == 0) m_nHeight = atoi(value); } if ( toolbarElements.size() == 0 ) { removeToolbar(); return; } removeAllButtons(); int nSeparators = 0; bool wasSeparator = false; for (int ipass=0; ipass < 2; ++ipass) { for (int i = 0; i < (int)toolbarElements.size(); ++i) { const char *label = NULL; const char *action = NULL; const char *icon = NULL; const char *colored_icon = NULL; int nItemWidth = 0; CJSONEntry oEntry(toolbarElements[i].c_str()); if ( oEntry.hasName("label") ) label = oEntry.getString("label"); if ( oEntry.hasName("action") ) action = oEntry.getString("action"); if ( oEntry.hasName("icon") ) icon = oEntry.getString("icon"); if ( oEntry.hasName("coloredIcon") ) colored_icon = oEntry.getString("coloredIcon"); if ( oEntry.hasName("width") ) nItemWidth = oEntry.getInt("width"); if (label == NULL) label = ""; if ( label == NULL || action == NULL) { LOG(ERROR) + "Illegal argument for create_nativebar"; return; } if ( strcasecmp(action, "forward") == 0 && rho_conf_getBool("jqtouch_mode") ) continue; if (!action) action = ""; if (ipass==0) { if (strcasecmp(action, "separator")==0) ++nSeparators; } else { LOG(INFO) + "addToolbarButton: Label: '"+label+"';Action: '"+action+"'"; if (strcasecmp(action, "separator")==0) { if (nSeparators!=1) ((QtMainWindow*)qtMainWindow)->toolbarAddSeparator(nItemWidth); else wasSeparator = true; } else { String strImagePath; if ( icon && *icon ) { #ifndef RHODES_EMULATOR strImagePath = rho::common::CFilePath::join( RHODESAPP().getRhoRootPath(), "/apps" ); strImagePath = rho::common::CFilePath::join( strImagePath, icon ); #else strImagePath = rho::common::CFilePath::join( RHODESAPP().getRhoRootPath(), icon ); #endif } else { #if defined(RHODES_EMULATOR) #define RHODES_EMULATOR_PLATFORM_STR ".win32" #elif defined(RHO_SYMBIAN) #define RHODES_EMULATOR_PLATFORM_STR ".sym" #else #define RHODES_EMULATOR_PLATFORM_STR #endif if ( strcasecmp(action, "options")==0 ) strImagePath = "res/options_btn" RHODES_EMULATOR_PLATFORM_STR ".png"; else if ( strcasecmp(action, "home")==0 ) strImagePath = "res/home_btn" RHODES_EMULATOR_PLATFORM_STR ".png"; else if ( strcasecmp(action, "refresh")==0 ) strImagePath = "res/refresh_btn" RHODES_EMULATOR_PLATFORM_STR ".png"; else if ( strcasecmp(action, "back")==0 ) strImagePath = "res/back_btn" RHODES_EMULATOR_PLATFORM_STR ".png"; else if ( strcasecmp(action, "forward")==0 ) strImagePath = "res/forward_btn" RHODES_EMULATOR_PLATFORM_STR ".png"; #undef RHODES_EMULATOR_PLATFORM_STR #ifdef RHODES_EMULATOR strImagePath = strImagePath.length() > 0 ? CFilePath::join( RHOSIMCONF().getRhodesPath(), "lib/framework/" + strImagePath) : String(); #else strImagePath = strImagePath.length() > 0 ? CFilePath::join( rho_native_reruntimepath() , "lib/" + strImagePath) : String(); #endif } ((QtMainWindow*)qtMainWindow)->toolbarAddAction(QIcon(QString(strImagePath.c_str())), QString(label), action, wasSeparator); } } } } ((QtMainWindow*)qtMainWindow)->setToolbarStyle(false, (m_rgbBackColor.get()!=NULL ? m_rgbBackColor->name() : ""), m_nHeight); ((QtMainWindow*)qtMainWindow)->toolbarShow(); m_started = true; }
void CNativeTabbar::CreateTabbarEx(const rho::Vector<rho::String>& tabbarElements, const rho::Hashtable<rho::String, rho::String>& tabBarProperties, rho::apiGenerator::CMethodResult& oResult) { if (!rho_rhodesapp_check_mode() ) return; RemoveTabbar(); COLORREF rgbBackColor; bool bHiddenTabs = false, bCreateOnInit = false; for ( Hashtable<rho::String, rho::String>::const_iterator it = tabBarProperties.begin(); it != tabBarProperties.end(); ++it ) { const char *name = (it->first).c_str(); const char *value = (it->second).c_str(); if (strcasecmp(name, "backgroundColor") == 0) rgbBackColor = getColorFromString(value); if (strcasecmp(name, "hiddenTabs") == 0) bHiddenTabs = strcasecmp(value, "true") == 0; if (strcasecmp(name, "createOnInit") == 0) bCreateOnInit = strcasecmp(value, "true") == 0; } if ( !bHiddenTabs ) { LOG(WARNING) + "Illegal argument for create_nativebar: hiddenTabs should be true for Windows Mobile and Windows CE."; bHiddenTabs = true; } int nStartTab = -1; for (int i = 0; i < (int)tabbarElements.size(); ++i) { const char *label = NULL; const char *action = NULL; const char *icon = NULL; const char *reload = NULL; const char *colored_icon = NULL; COLORREF selected_color; const char *disabled = NULL; COLORREF web_bkg_color; const char* use_current_view_for_tab = NULL; bool bUseCurrentViewForTab = false, bReloadPage = false, bPerishable = false, bCreateOnInitTab = false; CJSONEntry oEntry(tabbarElements[i].c_str()); if ( oEntry.hasName("label") ) label = oEntry.getString("label"); if ( oEntry.hasName("action") ) action = oEntry.getString("action"); if ( oEntry.hasName("icon") ) icon = oEntry.getString("icon"); if ( oEntry.hasName("coloredIcon") ) colored_icon = oEntry.getString("coloredIcon"); if ( oEntry.hasName("reload") ) { reload = oEntry.getString("reload"); if (strcasecmp(reload, "true") == 0) bReloadPage = true; } if ( oEntry.hasName("perishable") ) { const char* perishable = oEntry.getString("perishable"); if (strcasecmp(perishable, "true") == 0) bPerishable = true; } if ( oEntry.hasName("createOnInit") ) { const char* createOnInit = oEntry.getString("createOnInit"); if (strcasecmp(createOnInit, "true") == 0) bCreateOnInitTab = true; } if ( oEntry.hasName("selectedColor") ) selected_color = getColorFromString(oEntry.getString("selectedColor")); if ( oEntry.hasName("disabled") ) disabled = oEntry.getString("disabled"); if ( oEntry.hasName("useCurrentViewForTab") ) { use_current_view_for_tab = oEntry.getString("useCurrentViewForTab"); if (strcasecmp(use_current_view_for_tab, "true") == 0) bUseCurrentViewForTab = true; } if (oEntry.hasName("backgroundColor")) web_bkg_color = getColorFromString(oEntry.getString("backgroundColor")); if (label == NULL) label = ""; if (action == NULL) action = ""; m_arTabs.addElement(CTabBarItem(action, label, bUseCurrentViewForTab, bReloadPage, bPerishable, bCreateOnInitTab)); if (m_strStartTabName.length()>0 && m_strStartTabName == label) nStartTab = i; } if ( oResult.hasCallback() ) m_oCallback = oResult; for ( int i = 0; i < (int)m_arTabs.size(); i++ ) { if ( m_arTabs[i].m_bCreateOnInit || bCreateOnInit ) SwitchTab(i, true); } if (m_strStartTabName.length()>0&&nStartTab>=0) { //getAppWindow().SetTimer( TABBAR_TIMER_ID, 1000 ); SwitchTabByName( m_strStartTabName.c_str(), false ); m_strStartTabName = ""; }else if ( m_arTabs.size() ) //&& !m_arTabs[0].m_bUseCurrentViewForTab ) SwitchTab(0); m_bTabCreated = true; }