public static void Initialize (MainFunc main_func) { if (initialized) throw new Exception ("This function cannot be called recursively."); initialized = true; int retval = scm_mono_boot_guile (main_func); Environment.Exit (retval); }
/// <summary> /// デリートスキップボタンをクリックしたとき /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDelSkip_Click(object sender, EventArgs e) { if (MainProgram.ShowMessageRes(MainProgram.MES_DELETESKIP, MainProgram.MES_TITLE_QUESTION, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // デリートスキップ実行 MainFunc.DeleteSkip(this.NowWallpaper, true); // グリッドを再描画 ListCreate(); } }
public static void Initialize(MainFunc main_func) { if (initialized) { throw new Exception("This function cannot be called recursively."); } initialized = true; int retval = scm_mono_boot_guile(main_func); Environment.Exit(retval); }
/// <summary> /// すべてを更新する /// </summary> private void AllRefresh() { // 設定オブジェクト生成 BgwcSetting set = new BgwcSetting(); // 更新する前に現在の個別壁紙設定を保存 set.SaveWallpaperSetting(); // 現在の壁紙のパス更新 MainFunc.NowWallpaperUpdate(this.NowWallpaper, MainFunc.RegWallpaperPath); // 壁紙リストを再構築 ListCreate(); }
/// <summary> /// Preview画像をクリックしたとき /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void picPreview_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { // 右クリック if (griList.RowsCount > 1) { Bitmap bmp = new Bitmap(this.picPreview.Image); //フォーカスを当てないとActicvePositionで落ちるので MainProgram.frmMain.griList.Focus(); // 壁紙色をグリッドにセット MainFunc.WallpaperColorSetting(true, bmp.GetPixel(e.X, e.Y)); } } }
public static NamespaceBlock Find(string str) { Match match = Is.MatchesAll(str); if (match == null) { return(null); } var main = MainFunc.Find(match.Groups["NamespaceBlock_Main"].ToString()); if (main == null) { return(null); } return(new NamespaceBlock() { main = main, thisNamespace = new MemberName(match.Groups["NamespaceBlock_namespace"].ToString()) }); }
static SilkActivity() { SearchPathContainer.Platform = UnderlyingPlatform.Android; CurrentMain = Main; }
static extern int scm_mono_boot_guile(MainFunc main_func);
static extern int scm_mono_boot_guile (MainFunc main_func);
/// <summary> /// グリッドにリストを生成する /// </summary> private void ListCreate() { // グリッドクリア this.GridClear(); // BGWC壁紙フォルダが存在するときのみリスト作成 if (Directory.Exists(this.txtWallpaperFolder.Text)) { // BGWC壁紙フォルダ以下にあるファイルを取得し配列に格納 string[] strAllFiles = Directory.GetFiles(this.txtWallpaperFolder.Text, "*", SearchOption.AllDirectories); // 壁紙に関するファイルだけ抽出 List <string> lstGraphicFile = new List <string>(); // 壁紙用ファイルリスト初期化 lstGraphicFile.Capacity = strAllFiles.Length; foreach (string strFile in strAllFiles) { if (this.CheckFileExt(Path.GetExtension(strFile))) { lstGraphicFile.Add(strFile); } } // リストを作成 // SourceGrid用イベント初期化 CellDoubleClickEvent doubleclickController = new CellDoubleClickEvent(); FileNameCellClickEvent filenameClickController = new FileNameCellClickEvent(); //FileNameEditStartEvent filenameeditstartController = new FileNameEditStartEvent(); WallpaperColorCellClickEvent wallpaperColorClickController = new WallpaperColorCellClickEvent(); KeyDownEvent keydownController = new KeyDownEvent(); // 壁紙位置リスト生成 SourceGrid.Cells.Editors.ComboBox cbEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(string)); cbEditor.StandardValues = new string[] { "", MainProgram.conWallpaperPos_Ori, MainProgram.conWallpaperPos_Arr, MainProgram.conWallpaperPos_Fit }; cbEditor.EditableMode = SourceGrid.EditableMode.Focus | SourceGrid.EditableMode.SingleClick | SourceGrid.EditableMode.AnyKey; cbEditor.Control.DropDownStyle = ComboBoxStyle.DropDownList; // 検索用IndexList初期化 _lstKeyIndexList = new List <string>(); _lstKeyIndexList.Capacity = 1000; // ヘッダの分を追加しておく _lstKeyIndexList.Add(""); // 壁紙用ファイルリストから1つずつとりだす foreach (string strFile in lstGraphicFile) { // 新規行番号を取得 int i = griList.RowsCount; // 新規行を追加 griList.Rows.Insert(i); // ファイル名用セル生成 griList[i, (int)MainProgram.enuGrid.FILENAME] = new SourceGrid.Cells.Cell(strFile.Replace(this.txtWallpaperFolder.Text + "\\", ""), typeof(string)); griList[i, (int)MainProgram.enuGrid.FILENAME].Editor.EditableMode = SourceGrid.EditableMode.None; griList[i, (int)MainProgram.enuGrid.FILENAME].AddController(doubleclickController); griList[i, (int)MainProgram.enuGrid.FILENAME].AddController(filenameClickController); //griList[i, (int)MainProgram.enuGrid.FILENAME].AddController(filenameeditstartController); griList[i, (int)MainProgram.enuGrid.FILENAME].AddController(keydownController); // 検索用Indexリストに追加 _lstKeyIndexList.Add(strFile.Replace(WallpaperFolder + "\\", "")); // 追加するファイルパス格納 string strAddFilePath = txtWallpaperFolder.Text + "\\" + griList[i, (int)MainProgram.enuGrid.FILENAME].Value; // 壁紙サイズ用セル生成 //if (this.CheckFileExt((Path.GetExtension(strFile)))){ griList[i, (int)MainProgram.enuGrid.WALLPAPERSIZE] = new SourceGrid.Cells.Cell(MainFunc.GetWallpaperSize(strAddFilePath)); //} // 壁紙位置用セル生成 griList[i, (int)MainProgram.enuGrid.VIEWPOS] = new SourceGrid.Cells.Cell("", cbEditor); griList[i, (int)MainProgram.enuGrid.VIEWPOS].View = SourceGrid.Cells.Views.ComboBox.Default; // 壁紙色用セル生成 griList[i, (int)MainProgram.enuGrid.COLOR] = new SourceGrid.Cells.Cell("None", typeof(string)); griList[i, (int)MainProgram.enuGrid.COLOR].AddController(wallpaperColorClickController); griList[i, (int)MainProgram.enuGrid.COLOR].Editor.EditableMode = SourceGrid.EditableMode.None; // 壁紙色(RGB)用セル生成 griList[i, (int)MainProgram.enuGrid.RGBCOLOR] = new SourceGrid.Cells.Cell("", typeof(string)); } // 検索用Indexリストのキャパシティを調整 _lstKeyIndexList.TrimExcess(); // 個別壁紙表示設定が存在する場合(ViewSettingファイルが存在) if (File.Exists(MainProgram.ApplicationPath + "\\" + MainProgram.conViewSetFileName)) { // 個別壁紙表示設定を取得 (DLL) ViewSetting vset = new ViewSetting(); // ViewSettingファイルからロード vset.ReadViewSetting(MainProgram.ApplicationPath + "\\" + MainProgram.conViewSetFileName); // ViewSettingListから1つずつ取り出す foreach (GVWI gvwi in vset.List) { // BGWCKeyをもつIndexを検索 int idx = GetKeyIndex(gvwi.Key); // 見つかったとき if (idx > 0) { // ヘッダの分プラス //idx++; // 壁紙位置を更新 griList[idx, (int)MainProgram.enuGrid.VIEWPOS] = new SourceGrid.Cells.Cell(gvwi.ViewPos, cbEditor); griList[idx, (int)MainProgram.enuGrid.VIEWPOS].View = SourceGrid.Cells.Views.ComboBox.Default; if (gvwi.Color != "") { // 壁紙色を更新 griList[idx, (int)MainProgram.enuGrid.RGBCOLOR] = new SourceGrid.Cells.Cell(gvwi.Color, typeof(string)); string[] strRGB = gvwi.Color.Split(' '); SourceGrid.Cells.Views.Cell cview = new SourceGrid.Cells.Views.Cell(); cview.BackColor = Color.FromArgb(int.Parse(strRGB[0]), int.Parse(strRGB[1]), int.Parse(strRGB[2])); griList[idx, (int)MainProgram.enuGrid.COLOR].View = cview; griList[idx, (int)MainProgram.enuGrid.COLOR].Value = ""; } } } } // 現在の壁紙を選択状態にする ListWallpaperSelected(GetWallpaperKey(NowWallpaper)); } }
/// <summary> /// 壁紙を登録する /// </summary> /// <param name="strAddFilePath">登録する壁紙のパス</param> private void AddWallpaper(string strAddFilePath) { // 常に手前を解除 MainProgram.Foremost(false); // コピー先パス string strCopyFilePath = this.txtWallpaperFolder.Text + "\\" + Path.GetFileName(strAddFilePath); // コピーファイルが存在するか確認 if (File.Exists(strCopyFilePath)) { // もしすでに存在していたら //拡張子取得 string strExt = Path.GetExtension(strAddFilePath); //違う名前を入力してもらう string strNewFileName = Microsoft.VisualBasic.Interaction.InputBox(MainProgram.MES_FILE_NEWNAME, MainProgram.MES_FILE_EXISTS, "Wallpaper" + DateTime.Now.ToString("yyyymmdd") + DateTime.Now.ToString("hhmmss"), -1, -1); if (strNewFileName == "") { // キャンセルされたら登録せずに終了 return; } // コピー先パスを更新 strCopyFilePath = this.WallpaperFolder + "\\" + strNewFileName + "." + strExt; } // 壁紙を登録(ファイル移動) try { File.Move(strAddFilePath, strCopyFilePath); } catch (Exception ex) { MainProgram.ShowMessage(ex.Message, MainProgram.MES_TITLE_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error); } // 登録後壁紙設定するか確認する。 DialogResult ret = MessageBox.Show(Path.GetFileName(strCopyFilePath) + "を壁紙に設定しますか?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (ret == DialogResult.Yes) { // OKが選択されたら // リストを再構築 this.ListCreate(); // 追加した壁紙を選択状態にする ListWallpaperSelected(GetWallpaperKey(strCopyFilePath)); // 追加した壁紙を現在の壁紙にする MainFunc.NowWallpaperUpdate(strCopyFilePath, strCopyFilePath); // 壁紙にする MainProgram.frmMain.btnApply_Click(new Object(), new EventArgs()); } // 常に手前だったら戻す if (MainProgram.frmMain.frmOpt.AlwaysOnTop == true) { MainProgram.Foremost(true); } }
/* * イベント */ #region Event /// <summary> /// MainFormをロードしたとき /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_Load(object sender, EventArgs e) { GeneralFunction gfunc = new GeneralFunction(); // コマンドラインで"delskip"をわたされたら if (MainProgram.CommandLine == "/delskip") { MainFunc.DeleteSkip(this.NowWallpaper, true); Environment.Exit(0); } else if (MainProgram.CommandLine == "/nowall") { // "/nowall"がわたされたら // レジストリキーをオープン RegistryKey regkey = Registry.CurrentUser.OpenSubKey(MainProgram.conWallpaperSubKey); regkey.SetValue("Wallpaper", ""); // 壁紙を無効に設定 regkey.Close(); Environment.Exit(0); } else if (MainProgram.CommandLine.Length > 4 && MainProgram.CommandLine.Substring(0, 4) == "/add") { // 壁紙がドロップされたとき // Me.Hide // 前のaddの文字をとって壁紙登録 AddWallpaper(MainProgram.CommandLine.Substring(4)); // 登録後終了する Environment.Exit(0); } // 設定されている壁紙を取得(Regist) // もしBGWChangerと違う壁紙が設定されていた場合 if (MainFunc.RegWallpaperPath != MainProgram.gBGWChangerGraphicPath) { // 壁紙情報をそっちに入れ替える MainFunc.NowWallpaperUpdate(MainFunc.RegWallpaperPath, MainFunc.RegWallpaperPath); } else { // BGWChangerGraphic存在チェック if (File.Exists(MainProgram.gBGWChangerGraphicPath)) { // 設定されている壁紙の元ファイルパスを読み込む MainFunc.NowWallpaperUpdate(MainProgram.set.Wallpaper, MainProgram.gBGWChangerGraphicPath); } } if (MainFunc.RegWallpaperPath == "") { MainProgram.frmMain.frmOpt.WallpaperNothing = true; } // 壁紙リスト生成 ListCreate(); // 壁紙チェンジ if (MainProgram.CommandLine == "/change" && griList.Rows.Count > 0) { MainFunc.WallpaperChange(); gfunc.WallpaperChanged(); return; } // プレビューに現在の壁紙の名前とサイズをロード this.PreviewFileName = Path.GetFileName(txtNowWallpaper.Text); this.lblPreviewSize.Text = this.lblWallpaperSize.Text; MainProgram.gWallpaperStyleWriteFlag = true; // すべてロードしてから表示 this.Visible = true; }