static Handle<Value> Nil(const Arguments& args) { HandleScope handle_scope; if (object_template_.IsEmpty()) { Handle<ObjectTemplate> raw_template = PrepareTemplate(); object_template_ = Persistent<ObjectTemplate>::New(raw_template); } if (nil_instance_.IsEmpty()) { nil_instance_ = Persistent<Value>::New(object_template_->NewInstance()); } return handle_scope.Close(nil_instance_); }
/* #FN# Sets a state of the object regarding to an appropriate check box */ void /* #AS# Nothing */ CKeyboardDlg:: OnUseTemplate() { _ClickButton( IDC_KEYBOARD_USETEMPLATE, m_ulInputState, IS_KEY_USE_TEMPLATE ); /* Read the template from a file */ if( _IsFlagSet( m_ulInputState, IS_KEY_USE_TEMPLATE ) ) { PrepareTemplate( m_szTemplateFile, m_szTemplateDesc ); } /* Set the dialog controls */ SetDlgState(); } /* #OF# CKeyboardDlg::OnUseTemplate */
/* #FN# Displays "Keyboard Template" dialog box */ void /* #AS# Nothing */ CKeyboardDlg:: OnEditTemplate() { CKeyTemplateDlg dlgKeyTemplate( m_szTemplateFile, m_szTemplateDesc, s_anKBTable, this ); dlgKeyTemplate.DoModal(); /* Read the template from a file */ PrepareTemplate( m_szTemplateFile, m_szTemplateDesc ); /* Set the dialog controls */ SetDlgState(); } /* #OF# CKeyboardDlg::OnEditTemplate */
/* #FN# Allows selecting a keyboard template using FileDialog window */ void /* #AS# Nothing */ CKeyboardDlg:: OnLoadTemplate() { if( PickFileName( TRUE, m_szTemplateFile, IDS_SELECT_A8K_LOAD, IDS_FILTER_A8K, "a8k", PF_LOAD_FLAGS, FALSE, DEFAULT_A8K, this ) && *m_szTemplateFile != '\0' ) { /* Read the template from a file */ PrepareTemplate( m_szTemplateFile, m_szTemplateDesc, FALSE ); /* Set the dialog controls */ SetDlgState(); } } /* #OF# CKeyboardDlg::OnLoadTemplate */
/* #FN# The framework calls this function before an edit losing input focus */ void /* #AS# Nothing */ CKeyboardDlg:: OnKillfocusTemplateFile() { char szTemplateOld[ MAX_PATH + 1 ]; strcpy( szTemplateOld, m_szTemplateFile ); GetDlgItemText( IDC_KEYBOARD_TEMPLATEFILE, m_szTemplateFile, MAX_PATH ); if( !m_bExitPass && _stricmp( szTemplateOld, m_szTemplateFile ) != 0 ) { /* Read the template from a file */ PrepareTemplate( m_szTemplateFile, m_szTemplateDesc ); /* Set the dialog controls */ SetDlgState(); } } /* #OF# CKeyboardDlg::OnKillfocusTemplateFile */
/* #FN# Performs special processing when the dialog box is initialized */ BOOL /* #AS# TRUE unless you set the focus to a control */ CKeyboardDlg:: OnInitDialog() { CCommonDlg::OnInitDialog(); m_ulInputState = g_Input.ulState; m_nArrowsMode = g_Input.Key.nArrowsMode; _strncpy( m_szTemplateFile, g_szTemplateFile, MAX_PATH ); _strncpy( m_szTemplateDesc, g_szTemplateDesc, TEMPLATE_DESC_LENGTH ); /* Read the template from a file */ PrepareTemplate( m_szTemplateFile, m_szTemplateDesc ); SetDlgState(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } /* #OF# CKeyboardDlg::OnInitDialog */
static Handle<Value> WrapResults(cached_object cache) { HandleScope handle_scope; if (object_template_.IsEmpty()) { Handle<ObjectTemplate> raw_template = PrepareTemplate(); object_template_ = Persistent<ObjectTemplate>::New(raw_template); } Handle<Object> new_object = object_template_->NewInstance(); //new_object->SetInternalField(1, External::New(results)); //printf("Here: %x\n", buffer); object* obj = new object(cache); obj->Wrap(new_object); // TODO: Lookup the args id and wrap it //printf("Wrapped and returning\n"); return handle_scope.Close(new_object); }
/* #FN# Called when the user clicks the OK button */ void /* #AS# Nothing */ CKeyboardDlg:: OnOK() { /* There is a problem with messages routing when the dialog is closed with Enter/Alt-O key. KILLFOCUS message arrives to late and we have to invoke KillFocus handlers in OnOK method by ourselves. That's why we use this member. */ m_bExitPass = TRUE; /* Unfortunately, edit controls do not lose the focus before handling this when the user uses accelerators */ ReceiveFocused(); if( m_nArrowsMode != g_Input.Key.nArrowsMode ) { g_Input.Key.nArrowsMode = m_nArrowsMode; WriteRegDWORD( NULL, REG_ARROWS_MODE, g_Input.Key.nArrowsMode ); Input_SetArrowKeys( g_Input.Key.nArrowsMode ); } /* Always reload the selected template */ if( !PrepareTemplate( m_szTemplateFile, m_szTemplateDesc ) ) { if( _IsFlagSet( m_ulInputState, IS_KEY_USE_TEMPLATE ) ) { _ClrFlag( m_ulInputState, IS_KEY_USE_TEMPLATE ); DisplayMessage( GetSafeHwnd(), IDS_ERROR_NO_KEYTEMP, 0, MB_ICONEXCLAMATION | MB_OK, m_szTemplateFile ); } } else /* Fill the template table */ CopyMemory( g_Input.Key.anKBTable, s_anKBTable, KEYBOARD_TABLE_SIZE * sizeof(int) ); if( _stricmp( g_szTemplateDesc, m_szTemplateDesc ) != 0 ) strcpy( g_szTemplateDesc, m_szTemplateDesc ); /* Windows NT doesn't like empty strings in Registry */ if( *m_szTemplateFile == '\0' ) strcpy( m_szTemplateFile, DEFAULT_A8K ); if( _stricmp( g_szTemplateFile, m_szTemplateFile ) != 0 ) { strcpy( g_szTemplateFile, m_szTemplateFile ); WriteRegString( NULL, REG_FILE_TEMPLATE, g_szTemplateFile ); } /* Check the miscellanous states */ if( m_ulInputState != g_Input.ulState ) { if( g_Input.ulState & IS_CAPTURE_CTRLESC ^ m_ulInputState & IS_CAPTURE_CTRLESC ) { Input_EnableEscCapture( _IsFlagSet( m_ulInputState, IS_CAPTURE_CTRLESC ) ); } g_Input.ulState = m_ulInputState; WriteRegDWORD( NULL, REG_INPUT_STATE, g_Input.ulState); } CCommonDlg::OnOK(); } /* #OF# CKeyboardDlg::OnOK */