Beispiel #1
0
        /// <summary>
        /// Applies a template into this flashcard
        /// </summary>
        /// <param name="template">Template to use</param>
        public void loadTemplate(Template template)
        {
            Card card = new Card("", ProfileManager.getCurrentUserID());

            if (currentCard.cardID == -1)
            {
                card.cardID = NEW_TEMPLATE_CARD;
            }
            else
            {
                card.cardID = currentCard.cardID;
            }

            eObject curEObj;
            TemplateObject curObj;
            // Fill the sides with objects
            for (int i = 0; i < template.objects.Count; i++)
            {
                curObj = template.objects[i];
                curEObj = new eObject(-1, curObj.side, curObj.type, curObj.x1, curObj.x2, curObj.y1, curObj.y2, curObj.quizType + "noFile.txt");
                card.eObjectList.Add(curEObj);
            }

            if (deck.cardList.Count == 0)
            {
                deck.cardList.Add(card);
                setFlashcard(card, 0);
            }
            else if (currentCard.index == -1)
            {
                deck.cardList.Add(card);
                setFlashcard(card, deck.cardList.Count - 1);
            }
            else
            {
                //deck.cardList[currentCard.index] = card;
                setFlashcard(card, currentCard.index);
            }

            templateChanged = true;
            changed = false;
            promptAtTemplateChange = false;
        }
Beispiel #2
0
        private Bitmap makeImage(Template template)
        {
            Bitmap bmp;

            Panel panel = new Panel();
            Panel panel0 = new Panel();
            Panel panel1 = new Panel();
            Label label0 = new Label();
            Label label1 = new Label();

            panel.Size = new Size(OBJ_WIDTH, OBJ_HEIGHT);
            panel.BorderStyle = BorderStyle.None;
            panel.BackColor = Color.Black;
            panel.Margin = new Padding(0, 0, 0, 0);
            panel.Location = new Point(0, 0);

            panel0.Size = new Size(OBJ_WIDTH, OBJ_HEIGHT);
            panel0.BorderStyle = BorderStyle.None;
            panel0.BackColor = Color.White;
            panel0.Margin = new Padding(0, 0, 0, 0);
            panel0.Location = new Point(0, 0);

            panel1.Size = new Size(OBJ_WIDTH, OBJ_HEIGHT);
            panel1.BorderStyle = BorderStyle.None;
            panel1.BackColor = Color.White;
            panel1.Margin = new Padding(0, 0, 0, 0);
            panel1.Location = new Point(0, 0);

            label0.Margin = new Padding(0, 0, 0, 0);
            label0.Padding = new Padding(0, 0, 0, 0);
            label0.Location = new Point(1, 1);
            label0.Size = new Size(10, 10);
            label0.BackColor = Color.White;
            label0.Font = new Font(FontFamily.GenericSansSerif, 6);
            label0.Text = "1";

            label1.Margin = new Padding(0, 0, 0, 0);
            label1.Padding = new Padding(0, 0, 0, 0);
            label1.Location = new Point(1, 1);
            label1.Size = new Size(10, 10);
            label1.BackColor = Color.White;
            label1.Font = new Font(FontFamily.GenericSansSerif, 6);
            label1.Text = "2";

            Panel curBmpObj;
            bool hasSide2 = false;

            foreach (TemplateObject curObj in template.objects)
            {
                curBmpObj = new Panel();
                if (curObj.quizType == Constant.answerPrefix)
                {
                    curBmpObj.BackColor = Color.Green;
                }
                else if (curObj.quizType == Constant.questionPrefix)
                {
                    curBmpObj.BackColor = Color.Red;
                }
                else
                {
                    curBmpObj.BackColor = Color.Gray;
                }
                curBmpObj.BorderStyle = BorderStyle.FixedSingle;
                curBmpObj.Location = new Point(Convert.ToInt32(curObj.x1 / 100.0 * OBJ_WIDTH), Convert.ToInt32(curObj.y1 / 100.0 * OBJ_HEIGHT));
                curBmpObj.Size = new Size(Convert.ToInt32((curObj.x2 - curObj.x1) / 100.0 * OBJ_WIDTH), Convert.ToInt32((curObj.y2 - curObj.y1) / 100.0 * OBJ_HEIGHT));

                if (curObj.side == 0)
                {
                    panel0.Controls.Add(curBmpObj);
                }
                else if (curObj.side == 1)
                {
                    panel1.Controls.Add(curBmpObj);
                    hasSide2 = true;
                }
            }

            panel0.Controls.Add(label0);
            panel1.Controls.Add(label1);

            if (hasSide2)
            {
                panel.Height = (OBJ_HEIGHT * 2) + 1;
                panel1.Location = new Point(0, OBJ_HEIGHT + 1);
                panel.Controls.Add(panel1);
            }

            panel.Controls.Add(panel0);

            bmp = new Bitmap(panel.Width, panel.Height);
            panel.DrawToBitmap(bmp, new Rectangle(0, 0, panel.Width, panel.Height));

            return bmp;
        }
Beispiel #3
0
        public static void initTemplates()
        {
            // Initalize hashtable
            templates = new	Dictionary<string, List<Template>>();

            // Initialize each category of templates
            templates.Add(Constant.textDeck, new List<Template>());
            templates.Add(Constant.imageDeck, new List<Template>());
            templates.Add(Constant.soundDeck, new List<Template>());

            Template curTemplate;

            // Initialize text quiz templates
            // A 1 sided template with both question and answer on first side
            curTemplate = new Template(Constant.textDeck);
            curTemplate.addQuestionObject(0, 30, 70, 20, 40);
            curTemplate.addAnswerObject(0, 20, 80, 50, 90);
            templates[Constant.textDeck].Add(curTemplate);

            // A 2 sided template with question on front and answer on
            // back, with several other non-quiz objects
            // In this case, sides 1 and 2 have the same layout
            curTemplate = new Template(Constant.textDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 30, 70, 80, 90);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 30, 70, 80, 90);
            templates[Constant.textDeck].Add(curTemplate);

            // A 2 sided template w/ question on front and answer on
            // back, with two other non-quiz objects (picture and sound
            // In this case, side 1 can have the picture and sound on the front
            // with one question object and side 2 can just have the answer object
            curTemplate = new Template(Constant.textDeck);
            curTemplate.addQuestionObject(0, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.imageFile, 0, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.soundFile, 0, 70, 90, 30, 70);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            templates[Constant.textDeck].Add(curTemplate);

            // A 2 sided template w/ question on front and answer on
            // back, with 2 other non-quiz objs (pix and sound)
            // In this case, side 1 can have just the question, and side 2
            // can have picture and sound, and the answer object
            curTemplate = new Template(Constant.textDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addAnswerObject(1, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.imageFile, 1, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.soundFile, 1, 70, 90, 30, 70);
            templates[Constant.textDeck].Add(curTemplate);

            // A 2 sided template w/ question on front and answer on
            // back, with 4 other non-quiz objs (pix and sound)
            // In this case, side 1 and side 2 both have images and sounds on their cards
            curTemplate = new Template(Constant.textDeck);
            curTemplate.addQuestionObject(0, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.imageFile, 0, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.soundFile, 0, 70, 90, 30, 70);
            curTemplate.addAnswerObject(1, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.imageFile, 1, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.soundFile, 1, 70, 90, 30, 70);
            templates[Constant.textDeck].Add(curTemplate);

            // Initialize image quiz templates
            curTemplate = new Template(Constant.imageDeck);
            curTemplate.addQuestionObject(0, 30, 70, 20, 60);
            curTemplate.addAnswerObject(0, 30, 70, 70, 90);
            templates[Constant.imageDeck].Add(curTemplate);

            //a 2-sided image quiz template
            curTemplate = new Template(Constant.imageDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            templates[Constant.imageDeck].Add(curTemplate);

            //a 2-sided image quiz template with text on both sides
            curTemplate = new Template(Constant.imageDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 30, 70, 80, 90);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 30, 70, 80, 90);
            templates[Constant.imageDeck].Add(curTemplate);

            //a 2-sided image quiz with 2 text noneobjects on the answer side
            curTemplate = new Template(Constant.imageDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addAnswerObject(1, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 70, 90, 30, 70);
            templates[Constant.imageDeck].Add(curTemplate);

            //a 2-sided image quiz with 2 text noneobjects on the question side
            curTemplate = new Template(Constant.imageDeck);
            curTemplate.addQuestionObject(0, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 70, 90, 30, 70);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            templates[Constant.imageDeck].Add(curTemplate);

            // Initialize sound quiz templates
            curTemplate = new Template(Constant.soundDeck);
            curTemplate.addQuestionObject(0, 30, 70, 20, 40);
            curTemplate.addAnswerObject(0, 20, 80, 50, 90);
            templates[Constant.soundDeck].Add(curTemplate);

            // a 2-sided sound quiz template
            curTemplate = new Template(Constant.soundDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            templates[Constant.soundDeck].Add(curTemplate);

            //a 2-sided sound quiz template with text on both sides
            curTemplate = new Template(Constant.soundDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 30, 70, 80, 90);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 30, 70, 80, 90);
            templates[Constant.soundDeck].Add(curTemplate);

            //a 2-sided sound quiz with 2 text noneobjects on the answer side
            curTemplate = new Template(Constant.soundDeck);
            curTemplate.addQuestionObject(0, 30, 70, 30, 70);
            curTemplate.addAnswerObject(1, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 1, 70, 90, 30, 70);
            templates[Constant.soundDeck].Add(curTemplate);

            //a 2-sided sound quiz with 2 text noneobjects on the question side
            curTemplate = new Template(Constant.soundDeck);
            curTemplate.addQuestionObject(0, 10, 30, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 40, 60, 30, 70);
            curTemplate.addNoneObject(Constant.textFile, 0, 70, 90, 30, 70);
            curTemplate.addAnswerObject(1, 30, 70, 30, 70);
            templates[Constant.soundDeck].Add(curTemplate);
        }