sfSystemMessageBox.cs
上传用户:lctyggxszx
上传日期:2022-06-30
资源大小:280k
文件大小:4k
源码类别:

FlashMX/Flex源码

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Windows.Forms;
  5. using AxShockwaveFlashObjects;
  6. using Mueller.Wddx;
  7. namespace SharpFlash
  8. {
  9. /// <summary>
  10. /// Summary description for sfSystemMessageBox.
  11. /// </summary>
  12. public class sfSystemMessageBox
  13. {
  14. private static WddxSerializer wddxSerializer = new WddxSerializer();
  15. private static WddxDeserializer wddDeserializer = new WddxDeserializer();
  16. //These libraries can be static for now.. depends on what their use is.
  17. public sfSystemMessageBox() {
  18. }
  19. //Handles any command.. Will exist for any library. Main library loop
  20. public static void Command(Form form, AxShockwaveFlash flashApp, string list, String method) {
  21. switch(method) {
  22. case "messageBox":
  23. sfSystemMessageBox.messageBox(form, flashApp, list);
  24. break;
  25. }
  26. }
  27. //Method in library. Can pick and choose what to pass in if you want.
  28. public static void messageBox(Form form, AxShockwaveFlash flashApp, string list) {
  29. MessageBoxButtons mbb;
  30. MessageBoxIcon mbi;
  31. MessageBoxDefaultButton mbd;
  32. //MessageBoxOptions mbo;
  33. System.Collections.Hashtable args = (System.Collections.Hashtable)wddDeserializer.Deserialize(list);
  34. string text = (string)args["text"];
  35. string caption = (string)args["caption"];
  36. int buttons = (int)args["buttons"];
  37. int icon = (int)args["icon"];
  38. int defaultButton = (int)args["defaultButton"];
  39. //int options = (int)args["options"];
  40. try 
  41. {
  42. mbb = getMessageBoxButtonsFromInt(buttons);
  43. mbi = getMessageBoxIconFromInt(icon);
  44. mbd = getMessageBoxDefaultButtonFromInt(defaultButton);
  45. //mbo = getMessageBoxOptionsFromInt(options);
  46. }
  47. catch (ArgumentException ae)
  48. {
  49. //MessageBox.Show(ae.Message, "Exception");
  50. flashApp.SetVariable("$SFData", "<sf><callback><id>" + list + "</id>" 
  51. + "<args>"
  52. + "<arg>" + wddxSerializer.Serialize(false).ToString() + "</arg>"
  53. + "<arg>" + wddxSerializer.Serialize(ae.Message).ToString() + "</arg>"
  54. + "</args></callback></sf>");
  55. return;
  56. }
  57.             
  58. DialogResult result = MessageBox.Show(text, caption, mbb, mbi, mbd/*, mbo*/);
  59. flashApp.SetVariable("$SFData", "<sf><callback><id>" + (string)args["callback_id"] + "</id>" 
  60. + "<args>"
  61. + "<arg>" + wddxSerializer.Serialize(result.ToString()).ToString() + "</arg>"
  62. + "</args></callback></sf>");
  63. }
  64. private static MessageBoxButtons getMessageBoxButtonsFromInt(int buttons) 
  65. {
  66. MessageBoxButtons mbb;
  67. switch(buttons) 
  68. {
  69. case 1: mbb = MessageBoxButtons.AbortRetryIgnore; break;
  70. case 2: mbb = MessageBoxButtons.OK; break;
  71. case 3: mbb = MessageBoxButtons.OKCancel; break;
  72. case 4: mbb = MessageBoxButtons.RetryCancel; break;
  73. case 5: mbb = MessageBoxButtons.YesNo; break;
  74. case 6: mbb = MessageBoxButtons.YesNoCancel; break;
  75. default: throw new ArgumentException("Invalid button type");
  76. }
  77. return mbb;
  78. }
  79. private static MessageBoxIcon getMessageBoxIconFromInt(int icon) 
  80. {
  81. MessageBoxIcon mbi;
  82. switch(icon) 
  83. {
  84. case 1: mbi = MessageBoxIcon.Asterisk; break;
  85. case 2: mbi = MessageBoxIcon.Error; break;
  86. case 3: mbi = MessageBoxIcon.Exclamation; break;
  87. case 4: mbi = MessageBoxIcon.Hand; break;
  88. case 5: mbi = MessageBoxIcon.Information; break;
  89. case 6: mbi = MessageBoxIcon.None; break;
  90. case 7: mbi = MessageBoxIcon.Question; break;
  91. case 8: mbi = MessageBoxIcon.Stop; break;
  92. case 9: mbi = MessageBoxIcon.Warning; break;
  93. default: throw new ArgumentException("Invalid icon type");
  94. }
  95. return mbi;
  96. }
  97. private static MessageBoxDefaultButton getMessageBoxDefaultButtonFromInt(int buttons) 
  98. {
  99. MessageBoxDefaultButton mbd;
  100. switch(buttons) 
  101. {
  102. case 1: mbd = MessageBoxDefaultButton.Button1; break;
  103. case 2: mbd = MessageBoxDefaultButton.Button2; break;
  104. case 3: mbd = MessageBoxDefaultButton.Button3; break;
  105. default: throw new ArgumentException("Invalid default button type");
  106. }
  107. return mbd;
  108. }
  109. }
  110. }